Skip to content

Commit 41edf6a

Browse files
committed
Merge branch 'master' into cesymm
Conflicts: biojava-structure-gui/src/main/java/demo/DemoMultipleMC.java biojava-structure/src/main/java/demo/DemoMultipleMC.java
2 parents 2aa40ea + a86f15d commit 41edf6a

File tree

19 files changed

+824
-558
lines changed

19 files changed

+824
-558
lines changed

biojava-core/src/main/java/org/biojava/nbio/core/sequence/ProteinSequence.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public ProteinSequence(ProxySequenceReader<AminoAcidCompound> proxyLoader, Compo
109109

110110
// cases if a protein has more than 1 parent are not supported yet
111111
if (CDSFeatures.size() == 1) {
112-
Qualifier codedBy = CDSFeatures.get(0).getQualifiers().get("coded_by");
112+
Qualifier codedBy = CDSFeatures.get(0).getQualifiers().get("coded_by").get(0);
113113

114114
if (codedBy != null) {
115115
String codedBySeq = codedBy.getValue();

biojava-core/src/main/java/org/biojava/nbio/core/sequence/features/AbstractFeature.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.Comparator;
3131
import java.util.HashMap;
3232
import java.util.List;
33+
import java.util.Map;
3334

3435
/**
3536
* A feature is currently any descriptive item that can be associated with a sequence position(s)
@@ -47,7 +48,7 @@ public abstract class AbstractFeature<S extends AbstractSequence<C>, C extends C
4748
private String description = "";
4849
private String shortDescription = "";
4950
private Object userObject = null;
50-
private HashMap<String,Qualifier> Qualifiers = new HashMap<String,Qualifier>();
51+
private Map<String, List<Qualifier>> Qualifiers = new HashMap<String, List<Qualifier>>();
5152

5253
/**
5354
* A feature has a type and a source
@@ -271,22 +272,31 @@ public void setUserObject(Object userObject) {
271272
}
272273

273274
@Override
274-
public HashMap<String, Qualifier> getQualifiers() {
275+
public Map<String, List<Qualifier>> getQualifiers() {
275276
// TODO Auto-generated method stub
276277
return Qualifiers;
277278
}
278279

279280
@Override
280-
public void setQualifiers(HashMap<String, Qualifier> qualifiers) {
281+
public void setQualifiers(Map<String, List<Qualifier>> qualifiers) {
281282
// TODO Auto-generated method stub
282283
Qualifiers = qualifiers;
283284

284285
}
285286

286287
@Override
287288
public void addQualifier(String key, Qualifier qualifier) {
288-
// TODO Auto-generated method stub
289-
Qualifiers.put(key, qualifier);
289+
// Check for key. Update list of values
290+
if (Qualifiers.containsKey(key)){
291+
List<Qualifier> vals = Qualifiers.get(key);
292+
vals.add(qualifier);
293+
Qualifiers.put(key, vals);
294+
} else {
295+
List<Qualifier> vals = new ArrayList<Qualifier>();
296+
vals.add(qualifier);
297+
Qualifiers.put(key, vals);
298+
}
290299

291300
}
301+
292302
}

biojava-core/src/main/java/org/biojava/nbio/core/sequence/features/FeatureDbReferenceInfo.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import java.util.ArrayList;
3333
import java.util.HashMap;
3434
import java.util.List;
35+
import java.util.Map;
3536

3637
/**
3738
* It is {@link DBReferenceInfo} which implements {@link FeatureInterface}. It allows to keep a dbReferenceInfo as a feature.
@@ -49,7 +50,7 @@ public class FeatureDbReferenceInfo<S extends AbstractSequence<C>, C extends Com
4950
private String description = "";
5051
private String shortDescription = "";
5152
private Object userObject;
52-
private HashMap<String,Qualifier> qualifiers = new HashMap<String,Qualifier>();
53+
private Map<String, List<Qualifier>> qualifiers = new HashMap<String,List<Qualifier>>();
5354

5455

5556
public FeatureDbReferenceInfo(String database, String id) {
@@ -137,22 +138,30 @@ public void setUserObject(Object userObject) {
137138
}
138139

139140
@Override
140-
public HashMap<String, Qualifier> getQualifiers() {
141+
public Map<String, List<Qualifier>> getQualifiers() {
141142
return qualifiers;
142143
}
143144

144145
@Override
145-
public void setQualifiers(HashMap<String, Qualifier> qualifiers) {
146+
public void setQualifiers(Map<String, List<Qualifier>> qualifiers) {
146147
this.qualifiers = qualifiers;
147148
}
148149

149150
@Override
150151
public void addQualifier(String key, Qualifier qualifier) {
151152
if (qualifiers == null) {
152-
qualifiers = new HashMap<String, Qualifier>();
153+
qualifiers = new HashMap<String, List<Qualifier>>();
153154
}
154-
155-
qualifiers.put(key, qualifier);
155+
// Check for key. Update list of values
156+
if (qualifiers.containsKey(key)){
157+
List<Qualifier> vals = qualifiers.get(key);
158+
vals.add(qualifier);
159+
qualifiers.put(key, vals);
160+
} else {
161+
List<Qualifier> vals = new ArrayList<Qualifier>();
162+
vals.add(qualifier);
163+
qualifiers.put(key, vals);
164+
}
165+
156166
}
157-
158-
}
167+
}

biojava-core/src/main/java/org/biojava/nbio/core/sequence/features/FeatureInterface.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@
2525

2626
package org.biojava.nbio.core.sequence.features;
2727

28+
import java.util.List;
29+
import java.util.Map;
30+
2831
import org.biojava.nbio.core.sequence.location.template.AbstractLocation;
2932
import org.biojava.nbio.core.sequence.template.AbstractSequence;
3033
import org.biojava.nbio.core.sequence.template.Compound;
3134

32-
import java.util.HashMap;
33-
import java.util.List;
34-
3535
/**
3636
* Interface class to handle describing arbitrary features. A feature can be found at multiple locations in a sequence such as
3737
* the surface of a protein where different sequence positions make up that feature. Ligand binding pocket is another example.
@@ -175,14 +175,14 @@ public interface FeatureInterface<S extends AbstractSequence<C>, C extends Compo
175175
* @return
176176
*/
177177

178-
public HashMap<String, Qualifier> getQualifiers();
178+
public Map<String, List<Qualifier>> getQualifiers();
179179

180180
/**
181181
* Set the qualifiers
182182
* @param qualifiers
183183
*/
184184

185-
public void setQualifiers(HashMap<String, Qualifier> qualifiers);
185+
public void setQualifiers(Map<String, List<Qualifier>> qualifiers);
186186
/**
187187
* Add a qualifier
188188
* @param qualifier

0 commit comments

Comments
 (0)