| AnnotationSet |

    1   /*
    2    *  AnnotationSet.java
    3    *
    4    *  Copyright (c) 1998-2001, The University of Sheffield.
    5    *
    6    *  This file is part of GATE (see http://gate.ac.uk/), and is free
    7    *  software, licenced under the GNU Library General Public License,
    8    *  Version 2, June 1991 (in the distribution as file licence.html,
    9    *  and also available at http://gate.ac.uk/gate/licence.html).
    10   *
    11   *  Hamish Cunningham, 7/Feb/2000
    12   *
    13   *  $Id: AnnotationSet.java,v 1.21 2001/09/20 14:28:58 kalina Exp $
    14   */
    15
    16  package gate;
    17
    18  import java.util.*;
    19  import java.io.*;
    20  import gate.util.*;
    21  import gate.event.*;
    22
    23  /** Annotation sets */
    24  public interface AnnotationSet extends Set, Cloneable, Serializable
    25  {
    26    /** Create and add an annotation with pre-existing nodes,
    27      * and return its id
    28      */
    29    public Integer add(Node start, Node end, String type, FeatureMap features);
    30
    31    /** Create and add an annotation with a pre-existing ID */
    32    public void add(
    33      Integer id, Long start, Long end, String type, FeatureMap features
    34    ) throws InvalidOffsetException;
    35
    36    /** Create and add an annotation and return its id */
    37    public Integer add(Long start, Long end, String type, FeatureMap features)
    38      throws InvalidOffsetException;
    39
    40    /** Add an existing annotation. Returns true when the set is modified. */
    41    public boolean add(Object o);
    42
    43    /** Get an iterator for this set */
    44    public Iterator iterator();
    45
    46    /** The size of this set */
    47    public int size();
    48
    49    /** Remove an element from this set. */
    50    public boolean remove(Object o);
    51
    52    /** Find annotations by id */
    53    public Annotation    get(Integer id);
    54
    55    /** Get all annotations */
    56    public AnnotationSet get();
    57
    58    /** Select annotations by type */
    59    public AnnotationSet get(String type);
    60
    61    /** Select annotations by a set of types. Expects a Set of String. */
    62    public AnnotationSet get(Set types);
    63
    64    /** Select annotations by type and features */
    65    public AnnotationSet get(String type, FeatureMap constraints);
    66
    67    /** Select annotations by type and feature names
    68     *  It returns all annotations of the given type that
    69     *  have the given set of features, regardless of their
    70     *  concrete values
    71     *  If the type == null, then select regardless of type
    72     *  */
    73    public AnnotationSet get(String type, Set featureNames);
    74
    75    /** Select annotations by type, features and offset */
    76    public AnnotationSet get(String type, FeatureMap constraints, Long offset);
    77
    78    /** Select annotations by offset. This returns the set of annotations
    79      * whose start node is the least such that it is greater than or equal
    80      * to offset. If a positional index doesn't exist it is created.
    81      */
    82    public AnnotationSet get(Long offset);
    83
    84    /** Select annotations by offset. This returns the set of annotations
    85      * that overlap totaly or partially the interval defined by the two
    86      * provided offsets
    87      */
    88    public AnnotationSet get(Long startOffset, Long endOffset);
    89
    90    /** Select annotations by offset and type. This returns the set of annotations
    91      * that overlap totaly or partially the interval defined by the two
    92      * provided offsets and are of the given type
    93      */
    94    public AnnotationSet get(String type, Long startOffset, Long endOffset);
    95
    96    /** Select annotations by offset. This returns the set of annotations
    97      * that are contained in the interval defined by the two
    98      * provided offsets. The difference with get(startOffset, endOffset) is
    99      * that the latter also provides annotations that have a span which
    100     * covers completely and is bigger than the given one. Here we only get
    101     * the annotations between the two offsets.
    102     */
    103   public AnnotationSet getContained(Long startOffset, Long endOffset);
    104
    105
    106   /** Get the node with the smallest offset */
    107   public Node firstNode();
    108
    109   /** Get the node with the largest offset */
    110   public Node lastNode();
    111
    112   /** Get the first node that is relevant for this annotation set and which has
    113     * the offset larger than the one of the node provided.
    114     */
    115   public Node nextNode(Node node);
    116
    117   /** Get the name of this set. */
    118   public String getName();
    119
    120   /** Get a set of java.lang.String objects representing all the annotation
    121     * types present in this annotation set.
    122     */
    123   public Set getAllTypes();
    124
    125   /** Get the document this set is attached to. */
    126   public Document getDocument();
    127
    128   public void addAnnotationSetListener(AnnotationSetListener l);
    129
    130   public void removeAnnotationSetListener(AnnotationSetListener l);
    131
    132   public void addGateListener(GateListener l);
    133
    134   public void removeGateListener(GateListener l);
    135
    136 } // interface AnnotationGraph
    137

| AnnotationSet |