Merge branch 'documentation/JAL-3407_2.11.1_release' into releases/Release_2_11_1_Branch
[jalview.git] / src / jalview / datamodel / features / FeatureSource.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.datamodel.features;
22
23 import java.util.HashMap;
24 import java.util.Map;
25
26 /**
27  * A class to model one source of feature data, including metadata about
28  * attributes of features
29  * 
30  * @author gmcarstairs
31  *
32  */
33 public class FeatureSource implements FeatureSourceI
34 {
35   private String name;
36
37   private Map<String, String> attributeNames;
38   
39   private Map<String, FeatureAttributeType> attributeTypes;
40   
41   /**
42    * Constructor
43    * 
44    * @param theName
45    */
46   public FeatureSource(String theName)
47   {
48     this.name = theName;
49     attributeNames = new HashMap<>();
50     attributeTypes = new HashMap<>();
51   }
52
53   /**
54    * {@inheritDoc}
55    */
56   @Override
57   public String getName()
58   {
59     return name;
60   }
61
62   /**
63    * {@inheritDoc}
64    */
65   @Override
66   public String getAttributeName(String attributeId)
67   {
68     return attributeNames.get(attributeId);
69   }
70
71   /**
72    * {@inheritDoc}
73    */
74   @Override
75   public FeatureAttributeType getAttributeType(String attributeId)
76   {
77     return attributeTypes.get(attributeId);
78   }
79
80   /**
81    * {@inheritDoc}
82    */
83   @Override
84   public void setAttributeName(String id, String attName)
85   {
86     attributeNames.put(id, attName);
87   }
88
89   /**
90    * {@inheritDoc}
91    */
92   @Override
93   public void setAttributeType(String id, FeatureAttributeType type)
94   {
95     attributeTypes.put(id, type);
96   }
97
98 }