|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectjava.util.AbstractCollection
java.util.AbstractSet
gate.annotation.AnnotationSetImpl
Implementation of AnnotationSet. Has a number of indices, all bar one of which are null by default and are only constructed when asked for. Has lots of get methods with various selection criteria; these return views into the set, which are nonetheless valid sets in their own right (but will not necesarily be fully indexed). Has a name, which is null by default; clients of Document can request named AnnotationSets if they so desire. Has a reference to the Document it is attached to. Contrary to Collections convention, there is no no-arg constructor, as this would leave the set in an inconsistent state.
There are five indices: annotation by id, annotations by type, annotations by start/end node and nodes by offset. The last three jointly provide positional indexing; construction of these is triggered by indexByStart/EndOffset(), or by calling a get method that selects on offset. The type index is triggered by indexByType(), or calling a get method that selects on type. The id index is always present.
| Nested Class Summary | |
class |
AnnotationSetImpl.VerboseHashMap
This is a HashMap
that fires events when elements are removed.
|
| Field Summary | |
protected Vector |
annotationSetListeners
|
protected HashMap |
annotsById
Maps annotation ids (Integers) to Annotations |
| Constructor Summary | |
AnnotationSetImpl(Collection c)
Construction from Collection (which must be an AnnotationSet) |
|
AnnotationSetImpl(Document doc)
Construction from Document. |
|
AnnotationSetImpl(Document doc,
String name)
Construction from Document and name. |
|
| Method Summary | |
void |
add(Integer id,
Long start,
Long end,
String type,
FeatureMap features)
Create and add an annotation from database read data In this case the id is already known being previously fetched from the database |
Integer |
add(Long start,
Long end,
String type,
FeatureMap features)
Create and add an annotation and return its id |
Integer |
add(Node start,
Node end,
String type,
FeatureMap features)
Create and add an annotation with pre-existing nodes, and return its id |
boolean |
add(Object o)
Add an existing annotation. |
boolean |
addAll(Collection c)
Adds multiple annotations to this set in one go. |
protected boolean |
addAllKeepIDs(Collection c)
Adds multiple annotations to this set in one go. |
void |
addAnnotationSetListener(AnnotationSetListener l)
|
void |
addGateListener(GateListener l)
|
Object |
clone()
|
void |
edit(Long start,
Long end,
DocumentContent replacement)
Propagate changes to the document content. |
protected void |
fireAnnotationAdded(AnnotationSetEvent e)
|
protected void |
fireAnnotationRemoved(AnnotationSetEvent e)
|
protected void |
fireGateEvent(GateEvent e)
|
Node |
firstNode()
Get the node with the smallest offset |
AnnotationSet |
get()
Get all annotations |
Annotation |
get(Integer id)
Find annotations by id |
AnnotationSet |
get(Long offset)
Select annotations by offset. |
AnnotationSet |
get(Long startOffset,
Long endOffset)
Select annotations by offset. |
AnnotationSet |
get(Set types)
Select annotations by a set of types. |
AnnotationSet |
get(String type)
Select annotations by type |
AnnotationSet |
get(String type,
FeatureMap constraints)
Select annotations by type and features This will return an annotation set containing just those annotations of a particular type (i.e. with a particular name) and which have features with specific names and values. |
AnnotationSet |
get(String type,
FeatureMap constraints,
Long offset)
Select annotations by type, features and offset |
AnnotationSet |
get(String neededType,
Long startOffset,
Long endOffset)
Select annotations by offset. |
AnnotationSet |
get(String type,
Set featureNames)
Select annotations by type and feature names |
Set |
getAllTypes()
Get a set of java.lang.String objects representing all the annotation types present in this annotation set. |
AnnotationSet |
getContained(Long startOffset,
Long endOffset)
Select annotations by offset that start at a position between the start and end before the end offset |
Document |
getDocument()
Get the document this set is attached to. |
String |
getName()
Get the name of this set. |
AnnotationSet |
getStrict(Long startOffset,
Long endOffset)
Select annotations by offset. |
protected void |
indexByEndOffset()
Construct the positional indices for annotation end |
protected void |
indexByStartOffset()
Construct the positional indices for annotation start |
protected void |
indexByType()
Construct the positional index. |
Iterator |
iterator()
Get an iterator for this set |
Node |
lastNode()
Get the node with the largest offset |
Node |
nextNode(Node node)
Get the first node that is relevant for this annotation set and which has the offset larger than the one of the node provided. |
boolean |
remove(Object o)
Remove an element from this set. |
void |
removeAnnotationSetListener(AnnotationSetListener l)
|
protected boolean |
removeFromIdIndex(Annotation a)
Remove from the ID index. |
protected void |
removeFromOffsetIndex(Annotation a)
Remove from the offset indices. |
protected void |
removeFromTypeIndex(Annotation a)
Remove from the type index. |
void |
removeGateListener(GateListener l)
|
int |
size()
The size of this set |
| Methods inherited from class java.util.AbstractSet |
equals, hashCode, removeAll |
| Methods inherited from class java.util.AbstractCollection |
clear, contains, containsAll, isEmpty, retainAll, toArray, toArray, toString |
| Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.Set |
clear, contains, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray |
| Field Detail |
protected HashMap annotsById
protected transient Vector annotationSetListeners
| Constructor Detail |
public AnnotationSetImpl(Document doc)
public AnnotationSetImpl(Document doc,
String name)
public AnnotationSetImpl(Collection c)
throws ClassCastException
| Method Detail |
public Iterator iterator()
iterator in interface SimpleAnnotationSet
public boolean remove(Object o)
throws ClassCastException
remove in interface SimpleAnnotationSetClassCastExceptionprotected boolean removeFromIdIndex(Annotation a)
protected void removeFromTypeIndex(Annotation a)
protected void removeFromOffsetIndex(Annotation a)
public int size()
size in interface SimpleAnnotationSetpublic Annotation get(Integer id)
get in interface SimpleAnnotationSetpublic AnnotationSet get()
get in interface SimpleAnnotationSetpublic AnnotationSet get(String type)
get in interface SimpleAnnotationSet
public AnnotationSet get(Set types)
throws ClassCastException
get in interface SimpleAnnotationSetClassCastException
public AnnotationSet get(String type,
FeatureMap constraints)
get in interface AnnotationSettype - The name of the annotations to return.constraints - A feature map containing all of the feature value pairs
that the annotation must have in order for them to be returned.
public AnnotationSet get(String type,
Set featureNames)
get in interface AnnotationSetpublic AnnotationSet get(Long offset)
get in interface AnnotationSet
public AnnotationSet get(Long startOffset,
Long endOffset)
get in interface AnnotationSet
public AnnotationSet getStrict(Long startOffset,
Long endOffset)
public AnnotationSet get(String neededType,
Long startOffset,
Long endOffset)
get in interface AnnotationSet
public AnnotationSet get(String type,
FeatureMap constraints,
Long offset)
get in interface AnnotationSet
public AnnotationSet getContained(Long startOffset,
Long endOffset)
getContained in interface AnnotationSetpublic Node firstNode()
firstNode in interface AnnotationSetpublic Node lastNode()
lastNode in interface AnnotationSetpublic Node nextNode(Node node)
nextNode in interface AnnotationSet
public Integer add(Node start,
Node end,
String type,
FeatureMap features)
add in interface SimpleAnnotationSet
public boolean add(Object o)
throws ClassCastException
add in interface SimpleAnnotationSetClassCastExceptionpublic boolean addAll(Collection c)
Annotation type, otherwise a ClassCastException will be
thrown.
The provided annotations will be used to create new annotations using the
appropriate add() methods from this set. The new annotations will have
different IDs from the old ones (which is required in order to preserve the
uniqueness of IDs inside an annotation set).
addAll in interface Setc - a collection of annotations
protected boolean addAllKeepIDs(Collection c)
Annotation type, otherwise a ClassCastException will be
thrown.
This method does not create copies of the annotations like addAll() does
but simply adds the new annotations to the set.
It is intended to be used solely by annotation sets in order to construct
the results for various get(...) methods.
c - a collection of annotations
public Integer add(Long start,
Long end,
String type,
FeatureMap features)
throws InvalidOffsetException
add in interface SimpleAnnotationSetInvalidOffsetException
public void add(Integer id,
Long start,
Long end,
String type,
FeatureMap features)
throws InvalidOffsetException
add in interface AnnotationSetInvalidOffsetExceptionprotected void indexByType()
protected void indexByStartOffset()
protected void indexByEndOffset()
public void edit(Long start,
Long end,
DocumentContent replacement)
public String getName()
getName in interface SimpleAnnotationSetpublic Document getDocument()
getDocument in interface SimpleAnnotationSetpublic Set getAllTypes()
getAllTypes in interface SimpleAnnotationSet
public Object clone()
throws CloneNotSupportedException
CloneNotSupportedExceptionpublic void removeAnnotationSetListener(AnnotationSetListener l)
removeAnnotationSetListener in interface AnnotationSetl - public void addAnnotationSetListener(AnnotationSetListener l)
addAnnotationSetListener in interface AnnotationSetl - protected void fireAnnotationAdded(AnnotationSetEvent e)
e - protected void fireAnnotationRemoved(AnnotationSetEvent e)
e - public void removeGateListener(GateListener l)
removeGateListener in interface AnnotationSetl - public void addGateListener(GateListener l)
addGateListener in interface AnnotationSetl - protected void fireGateEvent(GateEvent e)
e -
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||