JAL-1683 replace year/version strings with tokens in source
[jalview.git] / src / jalview / datamodel / SequenceI.java
index 876db03..3808966 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -137,20 +137,22 @@ public interface SequenceI
    * create a new sequence object from start to end of this sequence
    * 
    * @param start
-   *          int
+   *          int index for start position
    * @param end
-   *          int
+   *          int index for end position
+   * 
    * @return SequenceI
+   * @note implementations may use getSequence to get the sequence data
    */
   public SequenceI getSubSequence(int start, int end);
 
   /**
-   * DOCUMENT ME!
+   * get the i'th character in this sequence's local reference frame (ie from
+   * 0-number of characters lying from start-end)
    * 
    * @param i
-   *          DOCUMENT ME!
-   * 
-   * @return DOCUMENT ME!
+   *          index
+   * @return character or ' '
    */
   public char getCharAt(int i);
 
@@ -189,7 +191,7 @@ public interface SequenceI
    * Returns the sequence position for an alignment position
    * 
    * @param i
-   *          column index in alignment (from 1)
+   *          column index in alignment (from 0..<length)
    * 
    * @return residue number for residue (left of and) nearest ith column
    */
@@ -313,8 +315,22 @@ public interface SequenceI
 
   public SequenceI getDatasetSequence();
 
+  /**
+   * Returns a new array containing this sequence's annotations, or null.
+   */
   public AlignmentAnnotation[] getAnnotation();
 
+  /**
+   * Returns true if this sequence has the given annotation (by object
+   * identity).
+   */
+  public boolean hasAnnotation(AlignmentAnnotation ann);
+
+  /**
+   * Add the given annotation, if not already added, and set its sequence ref to
+   * be this sequence. Does nothing if this sequence's annotations already
+   * include this annotation (by identical object reference).
+   */
   public void addAlignmentAnnotation(AlignmentAnnotation annotation);
 
   public void removeAlignmentAnnotation(AlignmentAnnotation annotation);
@@ -343,12 +359,11 @@ public interface SequenceI
   public AlignmentAnnotation[] getAnnotation(String label);
 
   /**
-   * Return a list of any annotations which match the given calcId (source) and
-   * label (type). Null values do not match.
+   * Returns a (possibly empty) list of any annotations that match on given
+   * calcId (source) and label (type). Null values do not match.
    * 
    * @param calcId
    * @param label
-   * @return
    */
   public List<AlignmentAnnotation> getAlignmentAnnotations(String calcId,
           String label);
@@ -399,4 +414,10 @@ public interface SequenceI
    */
   public void setRNA(RNA rna);
 
+  /**
+   * 
+   * @return list of insertions (gap characters) in sequence
+   */
+  public List<int[]> getInsertions();
+
 }