Class JCasImpl
- java.lang.Object
-
- org.apache.uima.cas.AbstractCas_ImplBase
-
- org.apache.uima.jcas.impl.JCasImpl
-
- All Implemented Interfaces:
AbstractCas
,JCas
public class JCasImpl extends AbstractCas_ImplBase implements AbstractCas, JCas
implements the supporting infrastructure for JCas model linked with a Cas. There is one logical instance of this instantiated per Cas or CasView. If you hold a reference to a CAS, to get a reference to the corresponding JCas, use the method getJCas(). Likewise, if you hold a reference to this object, you can get a reference to the corresponding CAS object using the method getCas().There are variables here that hold references to constant, frequently needed Cas values, such as 0-length FSArrays, 0-length Strings, etc. These can be used to improve efficiency, since the same object can be shared and used for all instances because it is unchangeable. These objects are reset when the CAS is reset, and are initialized lazily, on first use.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JCasImpl.ErrorReport
-
Field Summary
-
Fields inherited from interface org.apache.uima.jcas.JCas
INVALID_FEATURE_CODE
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addFsToIndexes(FeatureStructure instance)
Add a feature structure to all appropriate indexes in the repository associated with this CAS View.void
checkArrayBounds(int fsRef, int pos)
static void
clearData(CAS cas)
FeaturePath
createFeaturePath()
Create a feature path.FeatureValuePath
createFeatureValuePath(java.lang.String featureValuePath)
Create a feature-value path from a string.<T extends FeatureStructure>
FSIterator<T>createFilteredIterator(FSIterator<T> it, FSMatchConstraint constraint)
Create an iterator over structures satisfying a given constraint.SofaFS
createSofa(SofaID sofaID, java.lang.String mimeType)
Create a Subject of Analysis.JCas
createView(java.lang.String sofaID)
Create a view and its underlying Sofa (subject of analysis).<T extends FeatureStructure>
java.util.ListIterator<T>fs2listIterator(FSIterator<T> it)
Wrap a standard JavaListIterator
around an FSListIterator.<T extends TOP>
FSIterator<T>getAllIndexedFS(java.lang.Class<T> clazz)
Gets an iterator over all indexed FeatureStructures of the specified Type (and any of its subtypes).AnnotationIndex<Annotation>
getAnnotationIndex()
Get the standard annotation index.<T extends Annotation>
AnnotationIndex<T>getAnnotationIndex(int type)
Get the standard annotation index restricted to a specific annotation type.<T extends Annotation>
AnnotationIndex<T>getAnnotationIndex(java.lang.Class<T> clazz)
Get the standard annotation index restricted to a specific annotation type.<T extends Annotation>
AnnotationIndex<T>getAnnotationIndex(Type type)
Get the standard annotation index restricted to a specific annotation type.CAS
getCas()
CASImpl
getCasImpl()
Type
getCasType(int i)
Given Foo.type, return the corresponding CAS Type object.Type
getCasType(java.lang.Class<? extends TOP> clazz)
Return the UIMA Type object corresponding to this JCas's JCas cover class (Note: different JCas's, with different type systems, may share the same cover class impl)ConstraintFactory
getConstraintFactory()
Get a constraint factory.TOP
getDocumentAnnotationFs()
Gets the document annotation.java.lang.String
getDocumentLanguage()
Gets the language code for this document from the language feature of the special instance of the DocumentationAnnotation associated with this CAS.java.lang.String
getDocumentText()
Get the document text.FloatArray
getFloatArray0L()
FSArray
getFSArray0L()
A constant for each cas which holds a 0-length instance.FSIndexRepository
getFSIndexRepository()
<T extends TOP>
FSIndex<T>getIndex(java.lang.String label, java.lang.Class<T> clazz)
Retrieve an index according to a label and a type specified using a JCas class.FSIndexRepository
getIndexRepository()
Get the index repository.IntegerArray
getIntegerArray0L()
A constant for each cas which holds a 0-length instance.static JCas
getJCas(CASImpl cas)
creates a new JCas instance that corresponds to a CAS instance.JCas
getJCas(Sofa sofa)
Create a JCas view for a Sofa.<T extends TOP>
TgetJfsFromCaddr(int casAddr)
JFSIndexRepository
getJFSIndexRepository()
Gets the JCas-based interface to the Index Repository.LowLevelCAS
getLowLevelCas()
LowLevelIndexRepository
getLowLevelIndexRepository()
Feature
getRequiredFeature(Type t, java.lang.String s)
Feature
getRequiredFeatureDE(Type t, java.lang.String s, java.lang.String rangeName, boolean featOkTst)
Type
getRequiredType(java.lang.String s)
Make the instance of the JCas xxx_Type class for this CAS.Sofa
getSofa()
Get the Sofa feature structure associated with this JCas view.Sofa
getSofa(SofaID sofaID)
FeatureStructure
getSofaDataArray()
Get the Sofa data array.java.io.InputStream
getSofaDataStream()
Get the Sofa data as a byte stream.java.lang.String
getSofaDataString()
Get the Sofa Data String (a.k.a.java.lang.String
getSofaDataURI()
Get the Sofa data array.FSIterator<SofaFS>
getSofaIterator()
Get iterator for all SofaFS in the CAS.java.lang.String
getSofaMimeType()
Get the mime type of the Sofa data being analyzed.StringArray
getStringArray0L()
A constant for each cas which holds a 0-length instance.TOP_Type
getType(int i)
get the JCas _Type instance for a particular CAS type constantTOP_Type
getType(TOP instance)
get the JCas x_Type instance for a particular Java instance of a typeTypeSystem
getTypeSystem()
Return the type system of this CAS instance.JCas
getView(java.lang.String localViewName)
Get the view for a Sofa (subject of analysis).JCas
getView(SofaFS aSofa)
Get the view for a Sofa (subject of analysis).java.util.Iterator<JCas>
getViewIterator()
Get iterator over all views in this JCas.java.util.Iterator<JCas>
getViewIterator(java.lang.String localViewNamePrefix)
Get iterator over all views with the given name prefix.java.lang.String
getViewName()
Get the view name.void
instantiateJCas_Types(java.lang.ClassLoader cl)
void
maybeInitializeForClassLoader(java.lang.ClassLoader cl)
called when switching to JCas and the JCas already exists to check if the JCas needs to have classes loaded for this class loader.void
processInit()
initialize the JCas for new Cas content.java.lang.AutoCloseable
protectIndexes()
Call this method to set up a region, ended by a close() call on the returned object, You can use this or theJCas.protectIndexes(Runnable)
method to protected the indexes.void
protectIndexes(java.lang.Runnable runnable)
Runs the code in the runnable inside a protection block, where any modifications to features done while in this block will be done in a way to protect any indexes which otherwise might become corrupted by the update action; the protection is achieved by temporarily removing the FS (if it is in the indexes), before the update happens.void
putJfsFromCaddr(int casAddr, FeatureStructure fs)
void
release()
Default implementation that returns this CAS to its CasManager by callingCasOwner.releaseCas(AbstractCas)
.void
removeAllExcludingSubtypes(int i)
Remove all feature structures of a given type (excluding subtypes) from all indexes in the repository associated with this CAS View.void
removeAllIncludingSubtypes(int i)
Remove all feature structures of a given type (including subtypes) from all indexes in the repository associated with this CAS View.void
removeFsFromIndexes(FeatureStructure instance)
Remove a feature structure from all indexes in the repository associated with this CAS View.void
reset()
Reset the CAS, emptying it of all content.void
setDocumentLanguage(java.lang.String language)
Sets the language for this document.void
setDocumentText(java.lang.String text)
Set the document text.void
setOwner(CasOwner aCasOwner)
Provides this CAS with a handle to the CASOwner that owns it.void
setSofaDataArray(FeatureStructure array, java.lang.String mime)
Set the Sofa data as an ArrayFS.void
setSofaDataString(java.lang.String text, java.lang.String mime)
Set the document text.void
setSofaDataURI(java.lang.String uri, java.lang.String mime)
Set the Sofa data as a URI.void
showJfsFromCaddrHistogram()
int
size()
Estimate the memory consumption of this CAS instance (in bytes).void
switchClassLoader(java.lang.ClassLoader cl)
This is only called when the JCas is already set upvoid
throwFeatMissing(java.lang.String feat, java.lang.String type)
Internal - throw missing feature exception at runtime
-
-
-
Method Detail
-
getFSIndexRepository
public FSIndexRepository getFSIndexRepository()
- Specified by:
getFSIndexRepository
in interfaceJCas
- Returns:
- the FSIndexRepository object for this Cas
-
getLowLevelIndexRepository
public LowLevelIndexRepository getLowLevelIndexRepository()
- Specified by:
getLowLevelIndexRepository
in interfaceJCas
-
getCas
public CAS getCas()
-
getCasImpl
public CASImpl getCasImpl()
- Specified by:
getCasImpl
in interfaceJCas
-
getLowLevelCas
public LowLevelCAS getLowLevelCas()
- Specified by:
getLowLevelCas
in interfaceJCas
-
getTypeSystem
public TypeSystem getTypeSystem()
Description copied from interface:JCas
Return the type system of this CAS instance.- Specified by:
getTypeSystem
in interfaceJCas
- Returns:
- The type system, or
null
if none is available.
-
getType
public TOP_Type getType(int i)
Description copied from interface:JCas
get the JCas _Type instance for a particular CAS type constant
-
getCasType
public Type getCasType(int i)
Description copied from interface:JCas
Given Foo.type, return the corresponding CAS Type object. This is useful in the methods which require a CAS Type, for instance iterator creation.- Specified by:
getCasType
in interfaceJCas
- Parameters:
i
- - index returned by Foo.type- Returns:
- the CAS Java Type object for this CAS Type.
-
getType
public TOP_Type getType(TOP instance)
Description copied from interface:JCas
get the JCas x_Type instance for a particular Java instance of a type
-
switchClassLoader
public void switchClassLoader(java.lang.ClassLoader cl)
This is only called when the JCas is already set up- Parameters:
cl
- class loader to switch to
-
maybeInitializeForClassLoader
public void maybeInitializeForClassLoader(java.lang.ClassLoader cl)
called when switching to JCas and the JCas already exists to check if the JCas needs to have classes loaded for this class loader. This can happen when the JCas is first instantiated while under the scope of a nested UIMA class loader. This could be a Pear class loader, or even just an ordinary UIMA Class loader for a pipeline, where the Framework is running an "exit routine" supplied by the user, but loaded in a (for example) initial application loader context.- Parameters:
cl
- the class loader in use
-
instantiateJCas_Types
public void instantiateJCas_Types(java.lang.ClassLoader cl)
- Parameters:
cl
- the class loader to use as the initiating loader for loading JCas classes
-
getJCas
public static JCas getJCas(CASImpl cas) throws CASException
creates a new JCas instance that corresponds to a CAS instance. Will be called once by the UIMA framework when it creates the CAS.- Parameters:
cas
- a CAS instance- Returns:
- newly created and initialized JCas
- Throws:
CASException
- -
-
getRequiredType
public Type getRequiredType(java.lang.String s) throws CASException
Make the instance of the JCas xxx_Type class for this CAS. Note: not all types will have xxx_Type. Instance creation does the typeSystemInit kind of function, as well.- Specified by:
getRequiredType
in interfaceJCas
- Throws:
CASException
-
getRequiredFeature
public Feature getRequiredFeature(Type t, java.lang.String s) throws CASException
- Specified by:
getRequiredFeature
in interfaceJCas
- Throws:
CASException
-
getRequiredFeatureDE
public Feature getRequiredFeatureDE(Type t, java.lang.String s, java.lang.String rangeName, boolean featOkTst)
- Specified by:
getRequiredFeatureDE
in interfaceJCas
-
throwFeatMissing
public void throwFeatMissing(java.lang.String feat, java.lang.String type)
Internal - throw missing feature exception at runtime- Specified by:
throwFeatMissing
in interfaceJCas
- Parameters:
feat
- -type
- -
-
putJfsFromCaddr
public void putJfsFromCaddr(int casAddr, FeatureStructure fs)
- Specified by:
putJfsFromCaddr
in interfaceJCas
-
getJfsFromCaddr
public <T extends TOP> T getJfsFromCaddr(int casAddr)
- Specified by:
getJfsFromCaddr
in interfaceJCas
-
showJfsFromCaddrHistogram
public void showJfsFromCaddrHistogram()
-
clearData
public static void clearData(CAS cas)
-
reset
public void reset()
Description copied from interface:JCas
Reset the CAS, emptying it of all content. Feature structures and iterators will no longer be valid. Note: this method may only be called from an application. Calling it from an annotator will trigger a runtime exception.
-
checkArrayBounds
public final void checkArrayBounds(int fsRef, int pos)
- Specified by:
checkArrayBounds
in interfaceJCas
-
getSofa
public Sofa getSofa()
Description copied from interface:JCas
Get the Sofa feature structure associated with this JCas view.
-
createView
public JCas createView(java.lang.String sofaID) throws CASException
Description copied from interface:JCas
Create a view and its underlying Sofa (subject of analysis). The view provides access to the Sofa data and the index repository that contains metadata (annotations and other feature structures) pertaining to that Sofa.This method creates the underlying Sofa feature structure, but does not set the Sofa data. Setting ths Sofa data must be done by calling
JCas.setSofaDataArray(FeatureStructure, String)
,JCas.setSofaDataString(String, String)
orJCas.setSofaDataURI(String, String)
on the JCas view returned by this method.- Specified by:
createView
in interfaceJCas
- Parameters:
sofaID
- the local view name, before any sofa name mapping is done, for this view (note: this is the same as the associated Sofa name).- Returns:
- The view corresponding to this local name.
- Throws:
CASException
- - if a View with this name already exists in this CAS
-
getJCas
public JCas getJCas(Sofa sofa) throws CASException
Description copied from interface:JCas
Create a JCas view for a Sofa.- Specified by:
getJCas
in interfaceJCas
- Parameters:
sofa
- a Sofa feature structure in this CAS.- Returns:
- The JCas view for the given Sofa.
- Throws:
CASException
- -
-
getSofaIterator
public FSIterator<SofaFS> getSofaIterator()
Description copied from interface:JCas
Get iterator for all SofaFS in the CAS.- Specified by:
getSofaIterator
in interfaceJCas
- Returns:
- an iterator over SofaFS.
-
getJFSIndexRepository
public JFSIndexRepository getJFSIndexRepository()
Description copied from interface:JCas
Gets the JCas-based interface to the Index Repository. Provides the same functionality asJCas.getFSIndexRepository()
except that the methods that take a "type" argument take type arguments obtainable easily from the JCas type.- Specified by:
getJFSIndexRepository
in interfaceJCas
- Returns:
- the JCas-based interface to the index repository
-
getDocumentAnnotationFs
public TOP getDocumentAnnotationFs()
Description copied from interface:JCas
Gets the document annotation. The object returned from this method can be typecast to org.apache.uima.jcas.tcas.DocumentAnnotationThe reason that the return type of this method is not DocumentAnnotation is because of problems that arise when using the UIMA Extension ClassLoader to load annotator classes. The DocumentAnnotation type may be defined in the UIMA extension ClassLoader, differently than in the framework ClassLoader.
- Specified by:
getDocumentAnnotationFs
in interfaceJCas
- Returns:
- The one instance of the DocumentAnnotation annotation.
- See Also:
CAS.getDocumentAnnotation()
-
getDocumentText
public java.lang.String getDocumentText()
Description copied from interface:JCas
Get the document text.- Specified by:
getDocumentText
in interfaceJCas
- Returns:
- The text being analyzed.
-
getSofaDataString
public java.lang.String getSofaDataString()
Description copied from interface:JCas
Get the Sofa Data String (a.k.a. the document text).- Specified by:
getSofaDataString
in interfaceJCas
- Returns:
- The Sofa data string.
-
getSofaDataArray
public FeatureStructure getSofaDataArray()
Description copied from interface:JCas
Get the Sofa data array.- Specified by:
getSofaDataArray
in interfaceJCas
- Returns:
- The Sofa Data being analyzed.
-
getSofaDataURI
public java.lang.String getSofaDataURI()
Description copied from interface:JCas
Get the Sofa data array.- Specified by:
getSofaDataURI
in interfaceJCas
- Returns:
- The Sofa Data being analyzed.
-
getSofaMimeType
public java.lang.String getSofaMimeType()
Description copied from interface:JCas
Get the mime type of the Sofa data being analyzed.- Specified by:
getSofaMimeType
in interfaceJCas
- Returns:
- the mime type of the Sofa
-
setDocumentText
public void setDocumentText(java.lang.String text) throws CASRuntimeException
Description copied from interface:JCas
Set the document text. Once set, Sofa data is immutable, and cannot be set again until the CAS has been reset.- Specified by:
setDocumentText
in interfaceJCas
- Parameters:
text
- The text to be analyzed.- Throws:
CASRuntimeException
- If the Sofa data has already been set.
-
setSofaDataString
public void setSofaDataString(java.lang.String text, java.lang.String mime) throws CASRuntimeException
Description copied from interface:JCas
Set the document text. Once set, Sofa data is immutable, and cannot be set again until the CAS has been reset.- Specified by:
setSofaDataString
in interfaceJCas
- Parameters:
text
- The text to be analyzed.mime
- The mime type of the data- Throws:
CASRuntimeException
- If the Sofa data has already been set.
-
setSofaDataArray
public void setSofaDataArray(FeatureStructure array, java.lang.String mime) throws CASRuntimeException
Description copied from interface:JCas
Set the Sofa data as an ArrayFS. Once set, Sofa data is immutable, and cannot be set again until the CAS has been reset.- Specified by:
setSofaDataArray
in interfaceJCas
- Parameters:
array
- The ArrayFS to be analyzed.mime
- The mime type of the data- Throws:
CASRuntimeException
- If the Sofa data has already been set.
-
setSofaDataURI
public void setSofaDataURI(java.lang.String uri, java.lang.String mime) throws CASRuntimeException
Description copied from interface:JCas
Set the Sofa data as a URI. Once set, Sofa data is immutable, and cannot be set again until the CAS has been reset.- Specified by:
setSofaDataURI
in interfaceJCas
- Parameters:
uri
- The URI of the data to be analyzed.mime
- The mime type of the data- Throws:
CASRuntimeException
- If the Sofa data has already been set.
-
getDocumentLanguage
public java.lang.String getDocumentLanguage()
Description copied from interface:JCas
Gets the language code for this document from the language feature of the special instance of the DocumentationAnnotation associated with this CAS.- Specified by:
getDocumentLanguage
in interfaceJCas
- Returns:
- language identifier
-
setDocumentLanguage
public void setDocumentLanguage(java.lang.String language) throws CASRuntimeException
Description copied from interface:JCas
Sets the language for this document. This value sets the language feature of the special instance of DocumentAnnotation associated with this CAS.- Specified by:
setDocumentLanguage
in interfaceJCas
- Parameters:
language
- the language code- Throws:
CASRuntimeException
- passthru
-
getSofaDataStream
public java.io.InputStream getSofaDataStream()
Description copied from interface:JCas
Get the Sofa data as a byte stream.- Specified by:
getSofaDataStream
in interfaceJCas
- Returns:
- A stream handle to the Sofa Data.
-
getConstraintFactory
public ConstraintFactory getConstraintFactory()
Description copied from interface:JCas
Get a constraint factory. A constraint factory is a simple way of creatingFSMatchConstraints
.- Specified by:
getConstraintFactory
in interfaceJCas
- Returns:
- A constraint factory to create new FS constraints.
-
createFeaturePath
public FeaturePath createFeaturePath()
Description copied from interface:JCas
Create a feature path. This is mainly useful for creatingFSMatchConstraints
.- Specified by:
createFeaturePath
in interfaceJCas
- Returns:
- A new, empty feature path.
-
createFilteredIterator
public <T extends FeatureStructure> FSIterator<T> createFilteredIterator(FSIterator<T> it, FSMatchConstraint constraint)
Description copied from interface:JCas
Create an iterator over structures satisfying a given constraint. Constraints are described in the javadocs forConstraintFactory
and related classes.- Specified by:
createFilteredIterator
in interfaceJCas
- Type Parameters:
T
- the particular FeatureStructure type- Parameters:
it
- The input iterator.constraint
- The constraint specifying what structures should be returned.- Returns:
- An iterator over FSs.
-
getStringArray0L
public StringArray getStringArray0L()
Description copied from interface:JCas
A constant for each cas which holds a 0-length instance. Since this can be a common value, we avoid creating multiple copies of it. All uses can use the same valuee because it is not updatable (it has no subfields). This is initialized lazily on first reference, and reset when the CAS is reset.- Specified by:
getStringArray0L
in interfaceJCas
- Returns:
- 0-length instance of a StringArray
-
getIntegerArray0L
public IntegerArray getIntegerArray0L()
Description copied from interface:JCas
A constant for each cas which holds a 0-length instance. Since this can be a common value, we avoid creating multiple copies of it. All uses can use the same valuee because it is not updatable (it has no subfields). This is initialized lazily on first reference, and reset when the CAS is reset.- Specified by:
getIntegerArray0L
in interfaceJCas
- Returns:
- 0-length instance of an IntegerArray
-
getFloatArray0L
public FloatArray getFloatArray0L()
-
getFSArray0L
public FSArray getFSArray0L()
Description copied from interface:JCas
A constant for each cas which holds a 0-length instance. Since this can be a common value, we avoid creating multiple copies of it. All uses can use the same valuee because it is not updatable (it has no subfields). This is initialized lazily on first reference, and reset when the CAS is reset.- Specified by:
getFSArray0L
in interfaceJCas
- Returns:
- 0-length instance of a FloatArray public abstract FloatArray getFloatArray0L(); /** A constant for each cas which holds a 0-length instance. Since this can be a common value, we avoid creating multiple copies of it. All uses can use the same valuee because it is not updatable (it has no subfields). This is initialized lazily on first reference, and reset when the CAS is reset.
-
processInit
public void processInit()
Description copied from interface:JCas
initialize the JCas for new Cas content. Not used, does nothing.- Specified by:
processInit
in interfaceJCas
-
setOwner
public void setOwner(CasOwner aCasOwner)
Description copied from class:AbstractCas_ImplBase
Provides this CAS with a handle to the CASOwner that owns it. This is called by the framework when a CAS instance is created. This handle is used to implement the release() method by returning the CAS to its CasOwner.- Overrides:
setOwner
in classAbstractCas_ImplBase
- Parameters:
aCasOwner
- -
-
release
public void release()
Description copied from class:AbstractCas_ImplBase
Default implementation that returns this CAS to its CasManager by callingCasOwner.releaseCas(AbstractCas)
.- Specified by:
release
in interfaceAbstractCas
- Overrides:
release
in classAbstractCas_ImplBase
-
getView
public JCas getView(java.lang.String localViewName) throws CASException
Description copied from interface:JCas
Get the view for a Sofa (subject of analysis). The view provides access to the Sofa data and the index repository that contains metadata (annotations and other feature structures) pertaining to that Sofa.- Specified by:
getView
in interfaceJCas
- Parameters:
localViewName
- the local name, before any sofa name mapping is done, for this view (note: this is the same as the associated Sofa name).- Returns:
- The view corresponding to this local name.
- Throws:
CASException
- passthru
-
getView
public JCas getView(SofaFS aSofa) throws CASException
Description copied from interface:JCas
Get the view for a Sofa (subject of analysis). The view provides access to the Sofa data and the index repository that contains metadata (annotations and other feature structures) pertaining to that Sofa.- Specified by:
getView
in interfaceJCas
- Parameters:
aSofa
- a Sofa feature structure in the CAS- Returns:
- The view for the given Sofa
- Throws:
CASException
- passthru
-
addFsToIndexes
public void addFsToIndexes(FeatureStructure instance)
Description copied from interface:JCas
Add a feature structure to all appropriate indexes in the repository associated with this CAS View.Important: after you have called
addFsToIndexes(...)
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 callremoveFsFromIndexes(...)
on the FS, change the feature values, then calladdFsToIndexes(...)
again.- Specified by:
addFsToIndexes
in interfaceJCas
- Parameters:
instance
- The Feature Structure to be added.
-
removeFsFromIndexes
public void removeFsFromIndexes(FeatureStructure instance)
Description copied from interface:JCas
Remove a feature structure from all indexes in the repository associated with this CAS View.- Specified by:
removeFsFromIndexes
in interfaceJCas
- Parameters:
instance
- The Feature Structure to be removed.
-
removeAllIncludingSubtypes
public void removeAllIncludingSubtypes(int i)
Description copied from interface:JCas
Remove all feature structures of a given type (including subtypes) from all indexes in the repository associated with this CAS View.- Specified by:
removeAllIncludingSubtypes
in interfaceJCas
- Parameters:
i
- the CAS type constant, written as Foo.type (for a given JCas Type) or anInstanceOfFoo.getTypeIndexID(), for an instance
-
removeAllExcludingSubtypes
public void removeAllExcludingSubtypes(int i)
Description copied from interface:JCas
Remove all feature structures of a given type (excluding subtypes) from all indexes in the repository associated with this CAS View.- Specified by:
removeAllExcludingSubtypes
in interfaceJCas
- Parameters:
i
- the CAS type constant, written as Foo.type (for a given JCas Type) or anInstanceOfFoo.getTypeIndexID(), for an instance
-
fs2listIterator
public <T extends FeatureStructure> java.util.ListIterator<T> fs2listIterator(FSIterator<T> it)
Description copied from interface:JCas
Wrap a standard JavaListIterator
around an FSListIterator. Use if you feel more comfortable with java style iterators.- Specified by:
fs2listIterator
in interfaceJCas
- Type Parameters:
T
- The particular Feature Structure type- Parameters:
it
- TheFSListIterator
to be wrapped.- Returns:
- An equivalent
ListIterator
. - See Also:
CAS.fs2listIterator(FSIterator)
-
createFeatureValuePath
public FeatureValuePath createFeatureValuePath(java.lang.String featureValuePath) throws CASRuntimeException
Description copied from interface:JCas
Create a feature-value path from a string.- Specified by:
createFeatureValuePath
in interfaceJCas
- Parameters:
featureValuePath
- String representation of the feature-value path.- Returns:
- Feature-value path object.
- Throws:
CASRuntimeException
- If the input string is not well-formed.
-
createSofa
public SofaFS createSofa(SofaID sofaID, java.lang.String mimeType)
Description copied from interface:JCas
Create a Subject of Analysis. The new sofaFS is automatically added to the SofaIndex.- Specified by:
createSofa
in interfaceJCas
- Parameters:
sofaID
- the SofA IDmimeType
- the mime type- Returns:
- The sofaFS.
-
getIndexRepository
public FSIndexRepository getIndexRepository()
Description copied from interface:JCas
Get the index repository.- Specified by:
getIndexRepository
in interfaceJCas
- Returns:
- The index repository, or
null
if none is available.
-
getViewName
public java.lang.String getViewName()
Description copied from interface:JCas
Get the view name. The view name is the same as the name of the view's Sofa, retrieved by getSofa().getSofaID(), except for the initial View before its Sofa has been created.- Specified by:
getViewName
in interfaceJCas
- Returns:
- The name of the view
-
size
public int size()
Description copied from interface:JCas
Estimate the memory consumption of this CAS instance (in bytes).
-
getAnnotationIndex
public AnnotationIndex<Annotation> getAnnotationIndex()
Description copied from interface:JCas
Get the standard annotation index.- Specified by:
getAnnotationIndex
in interfaceJCas
- Returns:
- The standard annotation index.
-
getAnnotationIndex
public <T extends Annotation> AnnotationIndex<T> getAnnotationIndex(Type type) throws CASRuntimeException
Description copied from interface:JCas
Get the standard annotation index restricted to a specific annotation type.- Specified by:
getAnnotationIndex
in interfaceJCas
- Type Parameters:
T
- the Java class corresponding to type- Parameters:
type
- The annotation type the index is restricted to.- Returns:
- The standard annotation index, restricted to
type
. - Throws:
CASRuntimeException
-
getAnnotationIndex
public <T extends Annotation> AnnotationIndex<T> getAnnotationIndex(int type) throws CASRuntimeException
Description copied from interface:JCas
Get the standard annotation index restricted to a specific annotation type.- Specified by:
getAnnotationIndex
in interfaceJCas
- Type Parameters:
T
- the Java class corresponding to type- Parameters:
type
- The annotation type the index is restricted to, passed as an integer using the form MyAnnotationType.type- Returns:
- The standard annotation index, restricted to
type
. - Throws:
CASRuntimeException
- -
-
getAnnotationIndex
public <T extends Annotation> AnnotationIndex<T> getAnnotationIndex(java.lang.Class<T> clazz)
Description copied from interface:JCas
Get the standard annotation index restricted to a specific annotation type.- Specified by:
getAnnotationIndex
in interfaceJCas
- Type Parameters:
T
- the Java class clazz- Parameters:
clazz
- The JCas cover class for the annotation type the index is restricted to,- Returns:
- The standard annotation index, restricted to
type
.
-
getViewIterator
public java.util.Iterator<JCas> getViewIterator() throws CASException
Description copied from interface:JCas
Get iterator over all views in this JCas. Each view provides access to Sofa data and the index repository that contains metadata (annotations and other feature structures) pertaining to that Sofa.- Specified by:
getViewIterator
in interfaceJCas
- Returns:
- an iterator which returns all views. Each object returned by the iterator is of type JCas.
- Throws:
CASException
- -
-
getViewIterator
public java.util.Iterator<JCas> getViewIterator(java.lang.String localViewNamePrefix) throws CASException
Description copied from interface:JCas
Get iterator over all views with the given name prefix. Each view provides access to Sofa data and the index repository that contains metadata (annotations and other feature structures) pertaining to that Sofa.When passed the prefix namePrefix, the iterator will return all views who name is either exactly equal to namePrefix or is of the form namePrefix
.
suffix, where suffix can be any String.- Specified by:
getViewIterator
in interfaceJCas
- Parameters:
localViewNamePrefix
- the local name prefix, before any sofa name mapping is done, for this view (note: this is the same as the associated Sofa name prefix).- Returns:
- an iterator which returns all views with the given name prefix. Each object returned by the iterator is of type JCas.
- Throws:
CASException
- -
-
protectIndexes
public java.lang.AutoCloseable protectIndexes()
Description copied from interface:JCas
Call this method to set up a region, ended by a close() call on the returned object, You can use this or theJCas.protectIndexes(Runnable)
method to protected the indexes.This approach allows arbitrary code between the protectIndexes and the associated close method.
The close method is best done in a finally block, or using the try-with-resources statement in Java 8.
- Specified by:
protectIndexes
in interfaceJCas
- Returns:
- an object used to record things that need adding back
-
protectIndexes
public void protectIndexes(java.lang.Runnable runnable)
Description copied from interface:JCas
Runs the code in the runnable inside a protection block, where any modifications to features done while in this block will be done in a way to protect any indexes which otherwise might become corrupted by the update action; the protection is achieved by temporarily removing the FS (if it is in the indexes), before the update happens. At the end of the block, affected indexes have any removed-under-the-covers FSs added back.- Specified by:
protectIndexes
in interfaceJCas
- Parameters:
runnable
- code to execute while protecting the indexes.
-
getCasType
public Type getCasType(java.lang.Class<? extends TOP> clazz)
Return the UIMA Type object corresponding to this JCas's JCas cover class (Note: different JCas's, with different type systems, may share the same cover class impl)- Parameters:
clazz
- a JCas cover class- Returns:
- the corresponding UIMA Type object
-
getAllIndexedFS
public <T extends TOP> FSIterator<T> getAllIndexedFS(java.lang.Class<T> clazz)
Description copied from interface:JCas
Gets an iterator over all indexed FeatureStructures of the specified Type (and any of its subtypes). The elements are returned in arbitrary order, and duplicates (if they exist) are not removed.- Specified by:
getAllIndexedFS
in interfaceJCas
- Type Parameters:
T
- the Java clazz- Parameters:
clazz
- - the JCas Java class specifing which type and subtypes are included- Returns:
- An iterator that returns all indexed FeatureStructures of the JCas clazz and its subtypes, in no particular order.
-
getIndex
public <T extends TOP> FSIndex<T> getIndex(java.lang.String label, java.lang.Class<T> clazz)
Description copied from interface:JCas
Retrieve an index according to a label and a type specified using a JCas class. The type is used to narrow down the index of a more general type to a more specific one. Generics: T is the associated Java cover class for the type.- Specified by:
getIndex
in interfaceJCas
- Type Parameters:
T
- the Java clazz- Parameters:
label
- The name of the index.clazz
- The JCas class (mostly likely written as MyJCasClass.class), which must correspond to a subtype of the type of the index.- Returns:
- The specified, or
null
if an index with that name doesn't exist.
-
-