Interface EditableAlignment

All Known Implementing Classes:
FlexibleAlignment

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 invalid input: '<' 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.

  • Author:
    David Waring
    • Field Summary

      Fields
      Modifier and Type
      Field
      Description
      static final ChangeType
       
      static final ChangeType
       
    • Method Summary

      Modifier and Type
      Method
      Description
      void
      edit(Object label, Edit edit)
      edit() allows edits on an individual sequence, they should be reflected back to the underlying SymbolList.
      void
      shiftAtAlignmentLoc(Object label, Location loc, int offset)
      loc in this case is the Alignment Location
      void
      shiftAtSequenceLoc(Object label, Location loc, int offset)
      loc in this case is the SymbolList Location