X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequence.java;h=6c8cbc08979a4b30ac456795a0d4db232f107ba2;hb=6a951ef313becea88861eb3f48c244be82da1ca0;hp=fd710bde66df328562f1c6447fa02973e94dcf54;hpb=12a2da1bc751ed3612bcd022881bf2b6f73bb975;p=jalview.git diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index fd710bd..6c8cbc0 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -219,7 +219,8 @@ public class Sequence extends ASequence implements SequenceI initSeqAndName(seq.getName(), seq.getSequence(), seq.getStart(), seq.getEnd()); description = seq.getDescription(); - sourceDBRef = seq.getSourceDBRef(); + sourceDBRef = seq.getSourceDBRef() == null ? null : new DBRefEntry( + seq.getSourceDBRef()); if (seq.getSequenceFeatures() != null) { SequenceFeature[] sf = seq.getSequenceFeatures(); @@ -265,11 +266,10 @@ public class Sequence extends ASequence implements SequenceI } if (seq.getAllPDBEntries() != null) { - Vector ids = seq.getAllPDBEntries(); - Enumeration e = ids.elements(); - while (e.hasMoreElements()) + Vector ids = seq.getAllPDBEntries(); + for (PDBEntry pdb : ids) { - this.addPDBId(new PDBEntry((PDBEntry) e.nextElement())); + this.addPDBId(new PDBEntry(pdb)); } } } @@ -289,6 +289,7 @@ public class Sequence extends ASequence implements SequenceI @Override public synchronized void addSequenceFeature(SequenceFeature sf) { + // TODO add to dataset sequence instead if there is one? if (sequenceFeatures == null) { sequenceFeatures = new SequenceFeature[0]; @@ -420,7 +421,7 @@ public class Sequence extends ASequence implements SequenceI @Override public Vector getAllPDBEntries() { - return pdbIds; + return pdbIds == null ? new Vector() : pdbIds; } /** @@ -611,17 +612,15 @@ public class Sequence extends ASequence implements SequenceI } /** - * DOCUMENT ME! - * - * @param i - * DOCUMENT ME! + * Returns the character of the aligned sequence at the given position (base + * zero), or space if the position is not within the sequence's bounds * - * @return DOCUMENT ME! + * @return */ @Override public char getCharAt(int i) { - if (i < sequence.length) + if (i >= 0 && i < sequence.length) { return sequence[i]; } @@ -912,7 +911,7 @@ public class Sequence extends ASequence implements SequenceI } @Override - public void setDBRef(DBRefEntry[] dbref) + public void setDBRefs(DBRefEntry[] dbref) { dbrefs = dbref; } @@ -931,6 +930,7 @@ public class Sequence extends ASequence implements SequenceI @Override public void addDBRef(DBRefEntry entry) { + // TODO add to dataset sequence instead if there is one? if (dbrefs == null) { dbrefs = new DBRefEntry[0]; @@ -964,6 +964,7 @@ public class Sequence extends ASequence implements SequenceI @Override public void setDatasetSequence(SequenceI seq) { + // TODO check for circular reference before setting? datasetSequence = seq; } @@ -1080,8 +1081,8 @@ public class Sequence extends ASequence implements SequenceI datasetSequence.setDescription(getDescription()); setSequenceFeatures(null); // move database references onto dataset sequence - datasetSequence.setDBRef(getDBRefs()); - setDBRef(null); + datasetSequence.setDBRefs(getDBRefs()); + setDBRefs(null); datasetSequence.setPDBId(getAllPDBEntries()); setPDBId(null); datasetSequence.updatePDBIds();