JAL-3253 ApplicationSingletonProvider replaces Instance
[jalview.git] / src / jalview / datamodel / features / FeatureSources.java
1 package jalview.datamodel.features;
2
3 import jalview.bin.ApplicationSingletonProvider;
4 import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
5
6 import java.util.HashMap;
7 import java.util.Map;
8
9 public class FeatureSources implements ApplicationSingletonI
10 {
11
12   public static FeatureSources getInstance()
13   {
14     return (FeatureSources) ApplicationSingletonProvider
15             .getInstance(FeatureSources.class);
16   }
17
18   private Map<String, FeatureSourceI> sources;
19
20   private FeatureSources()
21   {
22     sources = new HashMap<>();
23   }
24
25   /**
26    * Answers the FeatureSource with the given unique identifier, or null if not
27    * known
28    * 
29    * @param sourceId
30    * @return
31    */
32   public FeatureSourceI getSource(String sourceId)
33   {
34     return sources.get(sourceId);
35   }
36
37   /**
38    * Adds the given source under the given key. This will replace any existing
39    * source with the same id, it is the caller's responsibility to ensure keys
40    * are unique if necessary.
41    * 
42    * @param sourceId
43    * @param source
44    */
45   public void addSource(String sourceId, FeatureSource source)
46   {
47     sources.put(sourceId, source);
48   }
49 }