|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.util.AbstractCollection<E>
java.util.AbstractSet<Annotation>
gate.annotation.AnnotationSetImpl
public class 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 four indices: annotation by id, annotations by type, annotations by start node and nodes by offset. The last two jointly provide positional indexing; construction of these is triggered by indexByStart(), 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.
| Field Summary | |
|---|---|
protected static AnnotationFactory |
annFactory
|
protected Vector<AnnotationSetListener> |
annotationSetListeners
|
protected HashMap<Integer,Annotation> |
annotsById
Maps annotation ids (Integers) to Annotations |
static AnnotationSet |
emptyAnnotationSet
|
protected Long |
longestAnnot
A caching value that greatly improves the performance of get methods that have a defined beginning and end. |
| Constructor Summary | |
|---|---|
AnnotationSetImpl(AnnotationSet c)
Construction from an existing AnnotationSet |
|
AnnotationSetImpl(Document doc)
Construction from Document. |
|
AnnotationSetImpl(Document doc,
String name)
Construction from Document and name. |
|
| Method Summary | |
|---|---|
boolean |
add(Annotation a)
Add an existing annotation. |
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 |
addAll(Collection<? extends Annotation> c)
Adds multiple annotations to this set in one go. |
protected boolean |
addAllKeepIDs(Collection<? extends Annotation> 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<String> 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<String> |
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 contained within an interval, i.e. |
AnnotationSet |
getCovering(String neededType,
Long startOffset,
Long endOffset)
Select annotations of the given type that completely span the range. |
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 |
indexByStartOffset()
Construct the positional indices for annotation start |
protected void |
indexByType()
Construct the positional index. |
Iterator<Annotation> |
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)
|
static void |
setAnnotationFactory(AnnotationFactory newFactory)
Set the annotation factory used to create annotation objects. |
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 transient HashMap<Integer,Annotation> annotsById
protected transient Vector<AnnotationSetListener> annotationSetListeners
protected transient Long longestAnnot
public static final AnnotationSet emptyAnnotationSet
protected static AnnotationFactory annFactory
| Constructor Detail |
|---|
public AnnotationSetImpl(Document doc)
public AnnotationSetImpl(Document doc,
String name)
public AnnotationSetImpl(AnnotationSet c)
throws ClassCastException
ClassCastException| Method Detail |
|---|
public Iterator<Annotation> iterator()
iterator in interface SimpleAnnotationSetiterator in interface Iterable<Annotation>iterator in interface Collection<Annotation>iterator in interface Set<Annotation>iterator in class AbstractCollection<Annotation>
public boolean remove(Object o)
throws ClassCastException
remove in interface SimpleAnnotationSetremove in interface Collection<Annotation>remove in interface Set<Annotation>remove in class AbstractCollection<Annotation>o - the element to remove
true if the set was modified by this
operation, false otherwise.
ClassCastExceptionprotected boolean removeFromIdIndex(Annotation a)
protected void removeFromTypeIndex(Annotation a)
protected void removeFromOffsetIndex(Annotation a)
public int size()
size in interface SimpleAnnotationSetsize in interface Collection<Annotation>size in interface Set<Annotation>size in class AbstractCollection<Annotation>public Annotation get(Integer id)
get in interface SimpleAnnotationSetid - the ID to search for
null if there is no annotation with this ID
in this set.public AnnotationSet get()
get in interface SimpleAnnotationSetpublic AnnotationSet get(String type)
get in interface SimpleAnnotationSettype - the annotation type to search for.
public AnnotationSet get(Set<String> types)
throws ClassCastException
get in interface SimpleAnnotationSettypes - the set of annotation types to search for.
ClassCastException
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 AnnotationSettype - the annotation type to return. If null
then all annotation types are searched.featureNames - the feature names which an annotation must have
to be matched.
public AnnotationSet get(Long offset)
get in interface AnnotationSetoffset - the offset at which to start the search.
offset. The returned set is
immutable.
public AnnotationSet get(Long startOffset,
Long endOffset)
get in interface AnnotationSetstartOffset - the start of the intervalendOffset - the end of the interval
public AnnotationSet getStrict(Long startOffset,
Long endOffset)
public AnnotationSet get(String neededType,
Long startOffset,
Long endOffset)
get in interface AnnotationSetneededType - the annotation type to search forstartOffset - the start of the intervalendOffset - the end of the interval
public AnnotationSet getCovering(String neededType,
Long startOffset,
Long endOffset)
getCovering in interface AnnotationSetneededType - Type of annotation to return. If empty, all
annotation types will be returned.startOffset - endOffset -
public AnnotationSet get(String type,
FeatureMap constraints,
Long offset)
get in interface AnnotationSettype - the annotation type to search forconstraints - the set of features an annotation must have to
be matchedoffset - the offset at which to anchor the search.
public AnnotationSet getContained(Long startOffset,
Long endOffset)
startOffset and < endOffset
and whose end position is <= endOffset.
getContained in interface AnnotationSetstartOffset - the start of the interval, inclusiveendOffset - the end of the interval, inclusive
public Node firstNode()
firstNode in interface AnnotationSetpublic Node lastNode()
lastNode in interface AnnotationSetpublic Node nextNode(Node node)
nextNode in interface AnnotationSetpublic static void setAnnotationFactory(AnnotationFactory newFactory)
DefaultAnnotationFactory.
public Integer add(Node start,
Node end,
String type,
FeatureMap features)
add in interface SimpleAnnotationSetstart - the start node for the new annotationend - the end node for the new annotationtype - the annotation typefeatures - the features for the new annotation
public boolean add(Annotation a)
throws ClassCastException
add in interface SimpleAnnotationSetadd in interface Collection<Annotation>add in interface Set<Annotation>add in class AbstractCollection<Annotation>a - the annotation to add
true if the set was modified by this
operation, false otherwise.
ClassCastExceptionpublic boolean addAll(Collection<? extends Annotation> 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 Collection<Annotation>addAll in interface Set<Annotation>addAll in class AbstractCollection<Annotation>c - a collection of annotations
protected boolean addAllKeepIDs(Collection<? extends Annotation> 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 SimpleAnnotationSetstart - the start offset for the new annotationend - the end offset for the new annotationtype - the annotation typefeatures - the features for the new annotation
InvalidOffsetException - if the start or end offsets are
null, or if the start offset is less than
0 or the end offset is greater than the length of the
document.
public void add(Integer id,
Long start,
Long end,
String type,
FeatureMap features)
throws InvalidOffsetException
add in interface AnnotationSetid - the ID for the new annotationstart - the start offset for the new annotationend - the end offset for the new annotationtype - the annotation typefeatures - the features for the new annotation
InvalidOffsetException - if the start or end offsets are
null, or if the start offset is less than
0 or the end offset is greater than the length of the
document.protected void indexByType()
protected void indexByStartOffset()
public void edit(Long start,
Long end,
DocumentContent replacement)
public String getName()
getName in interface SimpleAnnotationSetnull if
this set does not have a name (i.e. it is the default
annotation set for a document, or it is a subset view of
another annotation set).public Document getDocument()
getDocument in interface SimpleAnnotationSetpublic Set<String> getAllTypes()
getAllTypes in interface SimpleAnnotationSet
public Object clone()
throws CloneNotSupportedException
clone in class ObjectCloneNotSupportedExceptionpublic void removeAnnotationSetListener(AnnotationSetListener l)
removeAnnotationSetListener in interface AnnotationSetpublic void addAnnotationSetListener(AnnotationSetListener l)
addAnnotationSetListener in interface AnnotationSetprotected void fireAnnotationAdded(AnnotationSetEvent e)
protected void fireAnnotationRemoved(AnnotationSetEvent e)
public void removeGateListener(GateListener l)
removeGateListener in interface AnnotationSetpublic void addGateListener(GateListener l)
addGateListener in interface AnnotationSetprotected void fireGateEvent(GateEvent e)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||