/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * */ package org.biojava.bio.alignment; import org.biojava.bio.symbol.Edit; import org.biojava.bio.symbol.Location; import org.biojava.utils.ChangeType; import org.biojava.utils.ChangeVetoException; /** *
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:
* *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 */ public interface EditableAlignment{ /** *edit() allows edits on an individual sequence, they should be reflected back * to the underlying SymbolList. */ public void edit (Object label,Edit edit)throws ChangeVetoException; /** * loc in this case is the Alignment Location */ public void shiftAtAlignmentLoc(Object label, Location loc, int offset) throws ChangeVetoException,IllegalAlignmentEditException,IndexOutOfBoundsException; /** * loc in this case is the SymbolList Location */ public void shiftAtSequenceLoc(Object label, Location loc, int offset) throws ChangeVetoException,IllegalAlignmentEditException,IndexOutOfBoundsException; public static final ChangeType LOCATION = new ChangeType( "The location of a sequence is being changed", "org.biojava.bio.alignment.EditableAlignment", "LOCATION" ); public static final ChangeType GAPS = new ChangeType( "The gap within a sequence are changing", "org.biojava.bio.alignment.EditableAlignment", "GAPS" ); }