Log in Help
Print
Homereleasesgate-5.1-beta2-build3402-ALLpluginsAlignmentsrcgatealignmentgui 〉 IteratingMethod.java
 
package gate.alignment.gui;

import gate.Annotation;
import gate.AnnotationSet;
import gate.compound.CompoundDocument;

import java.io.Serializable;

/**
 * This interface declares a method that needs to be implemented by the
 * implementors of this interface. The purpose of this interface is to
 * allow users to define their own iterating sequence for the alignment
 * editor. For example, it could be a sentence alignment algorithm.
 * 
 * @author niraj
 */
public interface IteratingMethod extends Serializable {

  /**
   * This method, given necessary parameters, initialises the internal
   * resources.
   * 
   * @param compoundDocument - source document for which alignment is
   *          taking place
   * @param srcDocumentId - id of the source document
   * @param tgtDocumentId - id of the target document
   * @param srcInputAS - annotation set in the source document which to
   *          take annotations from
   * @param tgtInputAS - annotation set in the target document which to
   *          take annotations from
   * @param srcTokenAnnotationType - e.g. Token for word alignment
   * @param tgtTokenAnnotationType - e.g. Token for word alignment
   * @param srcUnitAnnotationType - e.g. Sentence for sentence alignment
   * @param tgtUnitAnnotationType - e.g. Sentence for sentence alignment
   * @throws IteratingMethodException - could throw exception if
   *           something is wrong with the parameters or with the source
   *           and target documents.
   */
  public void init(CompoundDocument compoundDocument, String srcDocumentId,
          String tgtDocumentId, String srcInputAS, String tgtInputAS,
          String srcTokenAnnotationType, String tgtTokenAnnotationType,
          String srcUnitAnnotationType, String tgtUnitAnnotationType)
          throws IteratingMethodException;

  /**
   * Retrieves the underlying text for the given annotation in the
   * document with given document id.
   * 
   * @param annot
   * @param documentId
   * @return
   */
  public String getText(Annotation annot, String documentId);

  /**
   * Similar to getContained method of the gate.AnnotationSet.
   * 
   * @param annot - this method uses annot.getStartNode().getOffset()
   *          and annot.getEndNode().getOffset() to decide boundaries.
   * @param documentId - id of the document to be used in the compound
   *          document.
   * @param annotationType - type of the annotations to be retrieved
   * @return gate.AnnotationSet with annotations of type annotationType
   */
  public AnnotationSet getUnderlyingAnnotations(Annotation annot,
          String documentId, String annotationType);

  /**
   * retrieves the next possible pair. 
   * @return
   */
  public Pair next();

  /**
   * retrieves the previous pair.
   * @return
   */
  public Pair previous();

  /**
   * Returns the last retrieved pair.
   * @return
   */
  public Pair current();

  /**
   * Returns true if there is any next pair available to return.
   * @return
   */
  public boolean hasNext();

  /**
   * Return true if there is any previous pair available to return;
   * @return
   */
  public boolean hasPrevious();

}