- All Known Implementing Classes:
public interface EditableAlignment
EditableAlignment is an interface that defines methods for shifting bases within an Alignment.
Shift should work as follows. Bases within a sequence can be shifted to the right with offset > 1 to the left with offset < 1. Shifting bases will be allowed if:
- 1: Shift would remove only gaps on one side, they will be replace with gaps on the other.
- 2: Shift is at the end of a sequence. It will add gaps if the range location is less than the whole sequence.
- Shifts that would delete bases will throw a IllegalEditException
If the Alignment is an UnequalLengthAlignment it should be acceptable to shift bases in such a way as to increase (or decrease) the size of the overall length of the alignment, i.e. shift them over the edge.
- David Waring
All Methods Instance Methods Abstract Methods Modifier and Type Method Description
edit(Object label, Edit edit)edit() allows edits on an individual sequence, they should be reflected back to the underlying SymbolList.
shiftAtAlignmentLoc(Object label, Location loc, int offset)loc in this case is the Alignment Location
shiftAtSequenceLoc(Object label, Location loc, int offset)loc in this case is the SymbolList Location
void edit(Object label, Edit edit) throws ChangeVetoException
void shiftAtAlignmentLoc(Object label, Location loc, int offset) throws ChangeVetoException, IllegalAlignmentEditException, IndexOutOfBoundsExceptionloc in this case is the Alignment Location