*/
public class Sequence implements SequenceI
{
+
SequenceI datasetSequence;
String name;
private char [] sequence;
// JBPNote - this is an incomplete copy.
SequenceI nseq = new Sequence(this.getName(), seq, nstart, nend);
nseq.setDescription(description);
- nseq.setDatasetSequence(getDatasetSequence());
+ if (datasetSequence!=null)
+ nseq.setDatasetSequence(datasetSequence);
+ else
+ nseq.setDatasetSequence(this);
return nseq;
}
hiddenSequences = null;
}
}
+ /**
+ * test if this is a valid candidate for another
+ * sequence's dataset sequence.
+ *
+ */
+ private boolean isValidDatasetSequence() {
+ if (datasetSequence!=null)
+ return false;
+ for (int i=0;i<sequence.length; i++)
+ if (jalview.util.Comparison.isGap(sequence[i]))
+ return false;
+ return true;
+ }
+ /* (non-Javadoc)
+ * @see jalview.datamodel.SequenceI#deriveSequence()
+ */
+ public SequenceI deriveSequence() {
+ SequenceI seq = new Sequence(name, sequence, start, end);
+ seq.setDescription(description);
+ if (datasetSequence!=null) {
+ seq.setDatasetSequence(datasetSequence);
+ } else {
+ if (isValidDatasetSequence())
+ seq.setDatasetSequence(this);
+ }
+ return seq;
+ }
+
}
public void addHiddenSequence(SequenceI seq);
public void showHiddenSequence(SequenceI seq);
+
+ /**
+ * Derive a sequence (using this one's dataset or as the dataset)
+ * @return duplicate sequence with valid dataset sequence
+ */
+ public SequenceI deriveSequence();
}