org.apache.uima.cas
Interface FSIndexRepository

All Known Subinterfaces:
FSIndexRepositoryMgr

public interface FSIndexRepository

Repository of indexes over feature structures. Use this interface to access previously defined indexes.


Method Summary
 void addFS(FeatureStructure fs)
          Add a feature structure to all appropriate indexes in the repository.
 FSIterator<FeatureStructure> getAllIndexedFS(Type aType)
          Gets an iterator over all indexed FeatureStructures of the specified Type (and any of its subtypes).
 FSIndex<FeatureStructure> getIndex(String label)
          Retrieve an index according to a label.
 FSIndex<FeatureStructure> getIndex(String label, Type type)
          Retrieve an index according to a label and a type.
 Iterator<FSIndex<FeatureStructure>> getIndexes()
          Get all indexes in this repository.
 Iterator<String> getLabels()
          Get all labels for all indexes.
 void removeFS(FeatureStructure fs)
          Remove a feature structure from all indexes in the repository.
 

Method Detail

getIndex

FSIndex<FeatureStructure> getIndex(String label)
Retrieve an index according to a label.

Parameters:
label - The name of the index.
Returns:
The index with the name label, or null if no such index is defined.

getIndex

FSIndex<FeatureStructure> getIndex(String label,
                                   Type type)
                                   throws CASRuntimeException
Retrieve an index according to a label and a type. The type is used to narrow down the index of a more general type to a more specific one.

Parameters:
label - The name of the index.
type - A subtype of the type of the index.
Returns:
The specified, or null if an index with that name doesn't exist.
Throws:
CASRuntimeException - When type is not a subtype of the index's type.

getLabels

Iterator<String> getLabels()
Get all labels for all indexes.

Returns:
All labels.

getIndexes

Iterator<FSIndex<FeatureStructure>> getIndexes()
Get all indexes in this repository.

Returns:
All indexes.

addFS

void addFS(FeatureStructure fs)
Add a feature structure to all appropriate indexes in the repository. If no indexes exist for the type of FS that you are adding, then a bag (unsorted) index will be automatically created.

Important: after you have called addFS() on a FS, do not change the values of any features used for indexing. If you do, the index will become corrupted and may be unusable. If you need to change an index feature value, first call removeFS() on the FS, change the feature values, then call addFS() again.

Parameters:
fs - The FS to be added.
Throws:
NullPointerException - If the fs parameter is null.

removeFS

void removeFS(FeatureStructure fs)
Remove a feature structure from all indexes in the repository.

Parameters:
fs - The FS to be removed.
Throws:
NullPointerException - If the fs parameter is null.

getAllIndexedFS

FSIterator<FeatureStructure> getAllIndexedFS(Type aType)
Gets an iterator over all indexed FeatureStructures of the specified Type (and any of its subtypes).

Limitation: If there are no sorted or bag indexes defined for this type, but there is more than one set index defined, then this method will only return the contents of one of these set indexes (chosen arbitrarily).

Parameters:
aType - The type
Returns:
An iterator that returns all indexed FeatureStructures of type aType, in no particular order.


Copyright © 2010 The Apache Software Foundation. All Rights Reserved.