View Javadoc
1   /**
2    * The contents of this file are subject to the Mozilla Public License Version 1.1
3    * (the "License"); you may not use this file except in compliance with the License.
4    * You may obtain a copy of the License at http://www.mozilla.org/MPL/
5    * Software distributed under the License is distributed on an "AS IS" basis,
6    * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
7    * specific language governing rights and limitations under the License.
8    *
9    * The Original Code is "DefaultCodeStoreRegistry.java".  Description:
10   * "Default Implementation of a CodeStoreRegistry"
11   *
12   * The Initial Developer of the Original Code is University Health Network. Copyright (C)
13   * 2012.  All Rights Reserved.
14   *
15   * Contributor(s): ______________________________________.
16   *
17   * Alternatively, the contents of this file may be used under the terms of the
18   * GNU General Public License (the "GPL"), in which case the provisions of the GPL are
19   * applicable instead of those above.  If you wish to allow use of your version of this
20   * file only under the terms of the GPL and not to allow others to use your version
21   * of this file under the MPL, indicate your decision by deleting  the provisions above
22   * and replace  them with the notice and other provisions required by the GPL License.
23   * If you do not delete the provisions above, a recipient may use your version of
24   * this file under either the MPL or the GPL.
25   *
26   */
27  package ca.uhn.hl7v2.conf.store;
28  
29  import java.util.ArrayList;
30  import java.util.List;
31  
32  /**
33   * Default Implementation of a {@link CodeStoreRegistry} 
34   * 
35   * @author Christian Ohr
36   */
37  public class DefaultCodeStoreRegistry implements CodeStoreRegistry {
38  
39      private static final List<CodeStoreRegistration> codeStores = new ArrayList<>();
40  
41      public void addCodeStore(CodeStore store) {
42          addCodeStore(store, ".*");
43      }
44  
45      public void addCodeStore(CodeStore store, String profileID) {
46          codeStores.add(new CodeStoreRegistration(store, profileID));
47      }
48  
49      public CodeStore getCodeStore(String profileID, String codeSystem) {
50          CodeStore store = null;
51          for (CodeStoreRegistration reg : codeStores) {
52              if ((store = reg.matchingCodeStore(codeSystem, profileID)) != null)
53                  break;
54          }
55          return store;
56      }
57  
58  }