X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequence.java;h=6c8cbc08979a4b30ac456795a0d4db232f107ba2;hb=6a951ef313becea88861eb3f48c244be82da1ca0;hp=9f65f71fea1acd6644e08766108bce20339054f3;hpb=d1aade87dce0266a471dfa1e96d5a94499d5d262;p=jalview.git diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index 9f65f71..6c8cbc0 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -219,6 +219,8 @@ public class Sequence extends ASequence implements SequenceI initSeqAndName(seq.getName(), seq.getSequence(), seq.getStart(), seq.getEnd()); description = seq.getDescription(); + sourceDBRef = seq.getSourceDBRef() == null ? null : new DBRefEntry( + seq.getSourceDBRef()); if (seq.getSequenceFeatures() != null) { SequenceFeature[] sf = seq.getSequenceFeatures(); @@ -228,10 +230,10 @@ public class Sequence extends ASequence implements SequenceI } } setDatasetSequence(seq.getDatasetSequence()); - if (datasetSequence == null && seq.getDBRef() != null) + if (datasetSequence == null && seq.getDBRefs() != null) { // only copy DBRefs if we really are a dataset sequence - DBRefEntry[] dbr = seq.getDBRef(); + DBRefEntry[] dbr = seq.getDBRefs(); for (int i = 0; i < dbr.length; i++) { addDBRef(new DBRefEntry(dbr[i])); @@ -264,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)); } } } @@ -288,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]; @@ -419,7 +421,7 @@ public class Sequence extends ASequence implements SequenceI @Override public Vector getAllPDBEntries() { - return pdbIds; + return pdbIds == null ? new Vector() : pdbIds; } /** @@ -610,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]; } @@ -911,18 +911,18 @@ public class Sequence extends ASequence implements SequenceI } @Override - public void setDBRef(DBRefEntry[] dbref) + public void setDBRefs(DBRefEntry[] dbref) { dbrefs = dbref; } @Override - public DBRefEntry[] getDBRef() + public DBRefEntry[] getDBRefs() { if (dbrefs == null && datasetSequence != null && this != datasetSequence) { - return datasetSequence.getDBRef(); + return datasetSequence.getDBRefs(); } return dbrefs; } @@ -930,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]; @@ -963,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; } @@ -1079,8 +1081,8 @@ public class Sequence extends ASequence implements SequenceI datasetSequence.setDescription(getDescription()); setSequenceFeatures(null); // move database references onto dataset sequence - datasetSequence.setDBRef(getDBRef()); - setDBRef(null); + datasetSequence.setDBRefs(getDBRefs()); + setDBRefs(null); datasetSequence.setPDBId(getAllPDBEntries()); setPDBId(null); datasetSequence.updatePDBIds(); @@ -1255,7 +1257,7 @@ public class Sequence extends ASequence implements SequenceI } } // transfer database references - DBRefEntry[] entryRefs = entry.getDBRef(); + DBRefEntry[] entryRefs = entry.getDBRefs(); if (entryRefs != null) { for (int r = 0; r < entryRefs.length; r++)