/** DOCUMENT ME!! */
public SequenceFeature[] sequenceFeatures;
- /** This array holds hidden sequences
- * of which this sequence is the representitive member of a group
- */
- SequenceGroup hiddenSequences;
/**
* Creates a new Sequence object.
// 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;
}
this.annotation.addElement(annotation);
}
- public SequenceGroup getHiddenSequences()
- {
- return hiddenSequences;
- }
- public void addHiddenSequence(SequenceI seq)
- {
- if (hiddenSequences == null)
- {
- hiddenSequences = new SequenceGroup();
- }
- hiddenSequences.addSequence(seq, false);
+ /**
+ * 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 showHiddenSequence(SequenceI seq)
- {
- hiddenSequences.deleteSequence(seq, false);
- if (hiddenSequences.getSize(false) < 1)
- {
- hiddenSequences = null;
- }
- }
}