public class FSIndexRepositoryImpl extends Object implements FSIndexRepositoryMgr, LowLevelIndexRepository
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_INDEX_SIZE
The default size of an index.
|
Modifier and Type | Method and Description |
---|---|
void |
addFS(FeatureStructure fs)
Add a feature structure to all appropriate indexes in the repository.
|
void |
addFS(int fsRef) |
void |
commit()
Commit this repository instance.
|
FSIndexComparator |
createComparator()
Create a new comparator to define a new index.
|
boolean |
createIndex(FSIndexComparator comp,
String label)
Create a new sorted index.
|
boolean |
createIndex(FSIndexComparator comp,
String label,
int indexType)
Create a new index.
|
boolean |
createIndexNoQuestionsAsked(FSIndexComparator comp,
String label,
int indexType)
This is public only until the xml specifier format supports specifying index kinds (set, bag
etc.).
|
LinearTypeOrderBuilder |
createTypeSortOrder()
Currently not useful.
|
void |
flush()
Reset all indexes.
|
int[] |
getAddedFSs() |
FSIterator<FeatureStructure> |
getAllIndexedFS(Type type)
Gets an iterator over all indexed FeatureStructures of the specified Type (and any of its
subtypes).
|
LinearTypeOrderBuilder |
getDefaultOrderBuilder()
Get the default type order builder.
|
LinearTypeOrder |
getDefaultTypeOrder()
Get the default type order.
|
int[] |
getDeletedFSs() |
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.
|
int[] |
getIndexedFSs()
For one particular view (the one associated with this instance of FsIndexRepositoryImpl),
return an array containing all FSs in any defined index, in this view.
|
Iterator<FSIndex<FeatureStructure>> |
getIndexes()
Get all indexes in this repository.
|
int |
getIndexSize(Type type) |
IntPointerIterator |
getIntIteratorForIndex(String label) |
IntPointerIterator |
getIntIteratorForIndex(String label,
Type type) |
Iterator<String> |
getLabels()
Get all labels for all indexes.
|
Iterator<String> |
getLabels(FSIndexComparator comp)
Get the labels for a specific comparator.
|
int[] |
getReindexedFSs() |
boolean |
isCommitted()
Check if this instance has been committed.
|
boolean |
isModified() |
void |
ll_addFS(int fsRef)
Add a FS reference to all appropriate indexes in the repository.
|
void |
ll_addFS(int fsRef,
boolean doChecks)
Add a FS reference to all appropriate indexes in the repository.
|
LowLevelIndex |
ll_getIndex(String indexName)
Get an index by its name.
|
LowLevelIndex |
ll_getIndex(String indexName,
int typeCode)
Get an index by a name and type.
|
void |
ll_removeFS(int fsRef)
Remove a FS reference from all indexes in the repository.
|
void |
removeAllExcludingSubtypes(Type type)
Remove all instances of a particular type (but not its subtypes) from all indexes
|
void |
removeAllIncludingSubtypes(Type type)
Remove all instances of a particular type (including its subtypes) from all indexes
|
void |
removeFS(FeatureStructure fs)
Remove a feature structure from all indexes in the repository.
|
void |
removeFS(int fsRef) |
public static final int DEFAULT_INDEX_SIZE
public void flush()
public void addFS(int fsRef)
public void commit()
FSIndexRepositoryMgr
commit
in interface FSIndexRepositoryMgr
FSIndexRepositoryMgr.commit()
public LinearTypeOrder getDefaultTypeOrder()
FSIndexRepositoryMgr
getDefaultTypeOrder
in interface FSIndexRepositoryMgr
public LinearTypeOrderBuilder getDefaultOrderBuilder()
FSIndexRepositoryMgr
getDefaultOrderBuilder
in interface FSIndexRepositoryMgr
public boolean createIndex(FSIndexComparator comp, String label, int indexType) throws CASAdminException
FSIndexRepositoryMgr
createIndex
in interface FSIndexRepositoryMgr
comp
- The comparator for the new index.label
- The name of the new index.indexType
- The kind of index (sorted, set, bag).false
iff an index with the samelabel
already exists.CASAdminException
- If the repository is locked (after calling commit()
).FSIndexRepositoryMgr.createIndex(FSIndexComparator, String)
public boolean createIndexNoQuestionsAsked(FSIndexComparator comp, String label, int indexType)
comp
- label
- indexType
- public Iterator<FSIndex<FeatureStructure>> getIndexes()
FSIndexRepository
getIndexes
in interface FSIndexRepository
FSIndexRepository.getIndexes()
public Iterator<String> getLabels()
FSIndexRepository
getLabels
in interface FSIndexRepository
FSIndexRepository.getLabels()
public Iterator<String> getLabels(FSIndexComparator comp)
comp
- The comparator.public FSIndex<FeatureStructure> getIndex(String label, Type type)
FSIndexRepository
getIndex
in interface FSIndexRepository
label
- The name of the index.type
- A subtype of the type of the index.null
if an index with that name doesn't exist.FSIndexRepository.getIndex(String, Type)
public FSIndex<FeatureStructure> getIndex(String label)
FSIndexRepository
getIndex
in interface FSIndexRepository
label
- The name of the index.label
, or null
if no such index
is defined.FSIndexRepository.getIndex(String)
public IntPointerIterator getIntIteratorForIndex(String label)
public IntPointerIterator getIntIteratorForIndex(String label, Type type)
public int getIndexSize(Type type)
public void removeAllExcludingSubtypes(Type type)
removeAllExcludingSubtypes
in interface FSIndexRepository
type
- public void removeAllIncludingSubtypes(Type type)
removeAllIncludingSubtypes
in interface FSIndexRepository
type
- public FSIndexComparator createComparator()
FSIndexRepositoryMgr
createComparator
in interface FSIndexRepositoryMgr
FSIndexRepositoryMgr.createComparator()
public boolean isCommitted()
FSIndexRepositoryMgr
isCommitted
in interface FSIndexRepositoryMgr
true
iff this instance has been committed.FSIndexRepositoryMgr.isCommitted()
public boolean createIndex(FSIndexComparator comp, String label) throws CASAdminException
FSIndexRepositoryMgr
createIndex
in interface FSIndexRepositoryMgr
comp
- The comparator for the new index.label
- The name of the new index.false
iff an index with the samelabel
already exists.CASAdminException
- If the repository is locked (after calling commit()
).FSIndexRepositoryMgr.createIndex(org.apache.uima.cas.admin.FSIndexComparator,
java.lang.String)
public int[] getIndexedFSs()
public void addFS(FeatureStructure fs)
FSIndexRepository
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.
addFS
in interface FSIndexRepository
fs
- The FS to be added.FSIndexRepository.addFS(org.apache.uima.cas.FeatureStructure)
public void removeFS(FeatureStructure fs)
FSIndexRepository
removeFS
in interface FSIndexRepository
fs
- The FS to be removed.FSIndexRepository.removeFS(org.apache.uima.cas.FeatureStructure)
public void removeFS(int fsRef)
public LinearTypeOrderBuilder createTypeSortOrder()
FSIndexRepositoryMgr
createTypeSortOrder
in interface FSIndexRepositoryMgr
public LowLevelIndex ll_getIndex(String indexName)
LowLevelIndexRepository
ll_getIndex
in interface LowLevelIndexRepository
indexName
- The name of the index.null
if no such index exists.public LowLevelIndex ll_getIndex(String indexName, int typeCode)
LowLevelIndexRepository
ll_getIndex
in interface LowLevelIndexRepository
indexName
- The name of the index.typeCode
- The code of the desired subtype.null
if no such index exists.public final void ll_addFS(int fsRef, boolean doChecks)
LowLevelIndexRepository
ll_addFS
in interface LowLevelIndexRepository
fsRef
- The FS reference to be added to the repository. If fsRef
is not a valid
FS reference, the subsequent behavior of the system is undefined.doChecks
- Check if the FS reference argument is a valid reference.public void ll_addFS(int fsRef)
LowLevelIndexRepository
ll_addFS
in interface LowLevelIndexRepository
fsRef
- The FS reference to be added to the repository. If fsRef
is not a valid
FS reference, the subsequent behavior of the system is undefined.public void ll_removeFS(int fsRef)
LowLevelIndexRepository
ll_removeFS
in interface LowLevelIndexRepository
fsRef
- The FS reference to be removed from the indexes.public FSIterator<FeatureStructure> getAllIndexedFS(Type type)
FSIndexRepository
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).
getAllIndexedFS
in interface FSIndexRepository
type
- The typeaType
,
in no particular order.public int[] getAddedFSs()
public int[] getDeletedFSs()
public int[] getReindexedFSs()
public boolean isModified()
Copyright © 2006–2015 The Apache Software Foundation. All rights reserved.