Class CASImpl

    • Field Detail

      • traceFSs

        public static final boolean traceFSs
      • DEFAULT_INITIAL_HEAP_SIZE

        public static final int DEFAULT_INITIAL_HEAP_SIZE
        See Also:
        Constant Field Values
      • DEFAULT_RESET_HEAP_SIZE

        public static final int DEFAULT_RESET_HEAP_SIZE
        See Also:
        Constant Field Values
      • THROW_EXCEPTION_FS_UPDATES_CORRUPTS

        public static final String THROW_EXCEPTION_FS_UPDATES_CORRUPTS
        The UIMA framework detects (unless disabled, for high performance) updates to indexed FS which update key values used as keys in indexes. Normally the framework will protect against index corruption by temporarily removing the FS from the indexes, then do the update to the feature value, and then addback the changed FS.

        Users can use the protectIndexes() methods to explicitly control this remove - add back cycle, for instance to "batch" together several updates to multiple features in a FS.

        Some build processes may want to FAIL if any unprotected updates of this kind occur, instead of having the framework silently recover them. This is enabled by having the framework throw an exception; this is controlled by this global JVM property, which, if defined, causes the framework to throw an exception rather than recover.

        See Also:
        Constant Field Values
      • IS_THROW_EXCEPTION_CORRUPT_INDEX

        public static final boolean IS_THROW_EXCEPTION_CORRUPT_INDEX
      • REPORT_FS_UPDATES_CORRUPTS

        public static final String REPORT_FS_UPDATES_CORRUPTS
        Define this JVM property to enable checking for invalid updates to features which are used as keys by any index.
        • The following are the same: -Duima.check_invalid_fs_updates and -Duima.check_invalid_fs_updates=true
        See Also:
        Constant Field Values
      • DISABLE_PROTECT_INDEXES

        public static final String DISABLE_PROTECT_INDEXES
        Set this JVM property to false for high performance, (no checking); insure you don't have the report flag (above) turned on - otherwise it will force this to "true".
        See Also:
        Constant Field Values
    • Constructor Detail

      • CASImpl

        public CASImpl​(TypeSystemImpl typeSystem,
                       int initialHeapSize,
                       boolean useJcasCache)
      • CASImpl

        public CASImpl()
        Constructor. Use only if you want to use the low-level APIs.
      • CASImpl

        public CASImpl​(int initialHeapSize,
                       boolean useJcasCache)
    • Method Detail

      • setCacheNotInIndex

        public void setCacheNotInIndex​(int fsAddr)
        Called by feature setters which know the FS is not in any index to bypass any index corruption checking, e.g., CasCopier Internal use only
        Parameters:
        fsAddr - the address of the feature structure
      • setCAS

        public void setCAS​(CAS cas)
        Specified by:
        setCAS in interface CASMgr
      • enableReset

        public void enableReset​(boolean flag)
        Description copied from interface: CASMgr
        Enable/disable resetting the CAS with CAS.reset().
        Specified by:
        enableReset in interface CASMgr
        Parameters:
        flag - true to enable reset
      • getTypeSystem

        public TypeSystem getTypeSystem()
        Description copied from interface: CAS
        Return the type system of this CAS instance.
        Specified by:
        getTypeSystem in interface CAS
        Returns:
        The type system, or null if none is available.
      • getConstraintFactory

        public ConstraintFactory getConstraintFactory()
        Description copied from interface: CAS
        Get a constraint factory. A constraint factory is a simple way of creating FSMatchConstraints.
        Specified by:
        getConstraintFactory in interface CAS
        Returns:
        A constraint factory to create new FS constraints.
      • createFS

        public <T extends FeatureStructure> T createFS​(Type type)
        Description copied from interface: CAS
        Create a new FeatureStructure.
        Specified by:
        createFS in interface CAS
        Type Parameters:
        T - the Java cover class for the FS being created
        Parameters:
        type - The type of the FS.
        Returns:
        The new FS.
      • ll_createFSAnnotCheck

        public int ll_createFSAnnotCheck​(int typeCode)
      • createArrayFS

        public ArrayFS createArrayFS​(int length)
        Description copied from interface: CAS
        Create a new feature structure array.
        Specified by:
        createArrayFS in interface CAS
        Parameters:
        length - The length of the array.
        Returns:
        The new array.
      • createIntArrayFS

        public IntArrayFS createIntArrayFS​(int length)
        Description copied from interface: CAS
        Create a new int array.
        Specified by:
        createIntArrayFS in interface CAS
        Parameters:
        length - The length of the array.
        Returns:
        The new array.
      • createFloatArrayFS

        public FloatArrayFS createFloatArrayFS​(int length)
        Description copied from interface: CAS
        Create a new int array.
        Specified by:
        createFloatArrayFS in interface CAS
        Parameters:
        length - The length of the array.
        Returns:
        The new array.
      • createStringArrayFS

        public StringArrayFS createStringArrayFS​(int length)
        Description copied from interface: CAS
        Create a new String array.
        Specified by:
        createStringArrayFS in interface CAS
        Parameters:
        length - The length of the array.
        Returns:
        The new array.
      • isBackwardCompatibleCas

        public boolean isBackwardCompatibleCas()
      • createSofa

        @Deprecated
        public SofaFS createSofa​(SofaID sofaID,
                                 String mimeType)
        Deprecated.
        Description copied from interface: CAS
        Create a Subject of Analysis. The new sofaFS is automatically added to the SofaIndex.
        Specified by:
        createSofa in interface CAS
        Parameters:
        sofaID - -
        mimeType - -
        Returns:
        The sofaFS.
      • getSofa

        @Deprecated
        public SofaFS getSofa​(SofaID sofaID)
        Deprecated.
        Description copied from interface: CAS
        Get sofaFS for given Subject of Analysis ID.
        Specified by:
        getSofa in interface CAS
        Parameters:
        sofaID - -
        Returns:
        The sofaFS.
      • ll_getSofaNum

        public int ll_getSofaNum​(int sofaRef)
      • ll_getSofaID

        public String ll_getSofaID​(int sofaRef)
      • ll_getSofaDataString

        public String ll_getSofaDataString​(int sofaAddr)
      • getBaseCAS

        public CASImpl getBaseCAS()
      • getSofaIterator

        public FSIterator<SofaFS> getSofaIterator()
        Description copied from interface: CAS
        Get iterator for all SofaFS in the CAS.
        Specified by:
        getSofaIterator in interface CAS
        Returns:
        an iterator over SofaFS.
      • setSofaFeat

        public void setSofaFeat​(int addr,
                                int sofa)
      • getSofaFeat

        public int getSofaFeat​(int addr)
      • getSofaRef

        public int getSofaRef()
      • createFilteredIterator

        public <T extends FeatureStructureFSIterator<T> createFilteredIterator​(FSIterator<T> it,
                                                                                 FSMatchConstraint cons)
        Description copied from interface: CAS
        Create an iterator over structures satisfying a given constraint. Constraints are described in the javadocs for ConstraintFactory and related classes.
        Specified by:
        createFilteredIterator in interface CAS
        Type Parameters:
        T - - the type of the Feature Structure
        Parameters:
        it - The input iterator.
        cons - The constraint specifying what structures should be returned.
        Returns:
        An iterator over FSs.
      • commitTypeSystem

        public void commitTypeSystem()
      • getIndexRepositoryMgr

        public FSIndexRepositoryMgr getIndexRepositoryMgr()
        Specified by:
        getIndexRepositoryMgr in interface CASMgr
        Returns:
        a writable version of the index repository. Note that the type system must be committed before this method can be called.
      • createFeaturePath

        public FeaturePath createFeaturePath()
        Description copied from interface: CAS
        Create a feature path. This is mainly useful for creating FSMatchConstraints.
        Specified by:
        createFeaturePath in interface CAS
        Returns:
        A new, empty feature path.
      • getTypeSystemMgr

        public TypeSystemMgr getTypeSystemMgr()
        Description copied from interface: CASMgr
        Return a writable version of the type system. This may be used to add new types and features.
        Specified by:
        getTypeSystemMgr in interface CASMgr
        Returns:
        A writable version of the type system.
        See Also:
        CASMgr.getTypeSystemMgr()
      • reset

        public void reset()
        Description copied from interface: CAS
        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.
        Specified by:
        reset in interface CAS
        Specified by:
        reset in interface CASMgr
        See Also:
        CASMgr
      • resetNoQuestions

        public void resetNoQuestions()
      • flush

        @Deprecated
        public void flush()
        Deprecated.
        Use reset()instead.
        Description copied from interface: CASMgr
        Flush this CAS instance of all transient data. This will delete all feature structures, but not the type system, the indexes etc. Call before processing a new document.
        Specified by:
        flush in interface CASMgr
      • getIndexRepository

        public FSIndexRepository getIndexRepository()
        Description copied from interface: CAS
        Get the index repository.
        Specified by:
        getIndexRepository in interface CAS
        Returns:
        The index repository, or null if none is available.
      • getCAS

        public CAS getCAS()
        Description copied from interface: CASMgr
        Return a non-admin version of the CAS.
        Specified by:
        getCAS in interface CASMgr
        Returns:
        The CAS corresponding to this CASMgr.
        See Also:
        CASMgr.getCAS()
      • setupCasFromCasMgrSerializer

        public CASImpl setupCasFromCasMgrSerializer​(CASMgrSerializer casMgrSerializer)
      • reinit

        public SerialFormat reinit​(InputStream istream)
                            throws CASRuntimeException
        --------------------------------------------------------------------- see Blob Format in CASSerializer This reads in and deserializes CAS data from a stream. Byte swapping may be needed if the blob is from C++ -- C++ blob serialization writes data in native byte order.
        Parameters:
        istream - -
        Returns:
        -
        Throws:
        CASRuntimeException - wraps IOException
      • reinit

        public SerialFormat reinit​(CommonSerDes.Header h,
                                   InputStream istream,
                                   CASMgrSerializer casMgrSerializer,
                                   CasLoadMode casLoadMode,
                                   BinaryCasSerDes6 f6,
                                   AllowPreexistingFS allowPreexistingFS,
                                   TypeSystemImpl ts)
                            throws CASRuntimeException
        --------------------------------------------------------------------- Deserialize a binary input stream, after reading the header, and optionally an externally provided type system and index spec used in compressed form 6 serialization previously This reads in and deserializes CAS data from a stream. Byte swapping may be needed if the blob is from C++ -- C++ blob serialization writes data in native byte order. The corresponding serialization code is in org.apache.uima.cas.impl.Serialization, also see CasIOUtils
        Parameters:
        h - -
        istream - -
        casMgrSerializer - null or the Java object representing the externally supplied type and maybe indexes definition (TSI)
        casLoadMode - DEFAULT or REINIT. REINIT required with compressed form 6 to reinitialize the cas's type system and index definition, for form 6.
        f6 - only used for form 6 where an instance of BinaryCasSerDes6 has been initialized
        allowPreexistingFS - only used for form 6 delta deserialization
        ts - -
        Returns:
        -
        Throws:
        CASRuntimeException - wraps IOException
      • createFS

        public <T extends FeatureStructure> T createFS​(int addr)
        This is your link from the low-level API to the high-level API. Use this method to create a FeatureStructure object from an address. Not that the reverse is not supported by public APIs (i.e., there is currently no way to get at the address of a FeatureStructure. Maybe we will need to change that.
        Type Parameters:
        T - The Java class associated with this feature structure
        Parameters:
        addr - The address of the feature structure to be created.
        Returns:
        A FeatureStructure object. Note that no checking whatsoever is done on the input address. There is really no way of finding out which addresses in the valid address space actually represent feature structures, and which don't.
      • ll_getArraySize

        public int ll_getArraySize​(int arrayFsRef)
        Description copied from interface: LowLevelCAS
        Get the size of an array.
        Specified by:
        ll_getArraySize in interface LowLevelCAS
        Parameters:
        arrayFsRef - The array reference.
        Returns:
        The size of the array.
      • getArrayStartAddress

        public final int getArrayStartAddress​(int addr)
        Get the heap address of the first cell of this array.
        Parameters:
        addr - The address of the array.
        Returns:
        The address where the first cell of the array is located.
      • getArrayValue

        public int getArrayValue​(int addr,
                                 int index)
        Get a specific value out of an array.
        Parameters:
        addr - The address of the array.
        index - The index of the value we're interested in.
        Returns:
        The value at index.
        Throws:
        ArrayIndexOutOfBoundsException - -
      • getTypeCode

        public int getTypeCode​(int fsAddr)
      • getHeapValue

        public int getHeapValue​(int addr)
        Get the value of an address on the heap.
        Parameters:
        addr - The target address.
        Returns:
        The value at the address.
      • setFeatureValue

        public void setFeatureValue​(int addr,
                                    int feat,
                                    int val)
        This is the common point where all sets of values in the heap come through It implements the check for invalid feature setting and potentially the addback. Set the value of a feature of a FS.
        Parameters:
        addr - The address of the FS.
        feat - The code of the feature.
        val - The new value for the feature.
        Throws:
        ArrayIndexOutOfBoundsException - If the feature is not a legal feature, or it is not appropriate for the type at the address.
      • setStringValue

        public void setStringValue​(int addr,
                                   int feat,
                                   String s)
      • setFloatValue

        public void setFloatValue​(int addr,
                                  int feat,
                                  float f)
      • getFeatureValue

        public int getFeatureValue​(int addr,
                                   int feat)
      • getStringValue

        public String getStringValue​(int addr,
                                     int feat)
      • getFloatValue

        public float getFloatValue​(int addr,
                                   int feat)
      • getFloatValue

        public float getFloatValue​(int addr)
      • setFeatureValue

        public void setFeatureValue​(int addr,
                                    int feat,
                                    byte v)
      • getByteValue

        public byte getByteValue​(int addr,
                                 int feat)
      • setFeatureValue

        public void setFeatureValue​(int addr,
                                    int feat,
                                    boolean v)
      • getBooleanValue

        public boolean getBooleanValue​(int addr,
                                       int feat)
      • setFeatureValue

        public void setFeatureValue​(int addr,
                                    int feat,
                                    short s)
      • getShortValue

        public short getShortValue​(int addr,
                                   int feat)
      • setFeatureValue

        public void setFeatureValue​(int addr,
                                    int feat,
                                    long s)
      • getLongValue

        public long getLongValue​(int addr,
                                 int feat)
      • setFeatureValue

        public void setFeatureValue​(int addr,
                                    int feat,
                                    float f)
      • setFeatureValue

        public void setFeatureValue​(int addr,
                                    int feat,
                                    double s)
      • getDoubleValue

        public double getDoubleValue​(int addr,
                                     int feat)
      • getFeatureValueAsString

        public String getFeatureValueAsString​(int addr,
                                              int feat)
      • setFeatureValueFromString

        public void setFeatureValueFromString​(int fsref,
                                              int feat,
                                              String value)
      • int2float

        public static final float int2float​(int i)
      • float2int

        public static final int float2int​(float f)
      • long2double

        public static final double long2double​(long l)
      • double2long

        public static final long double2long​(double d)
      • getStringForCode

        public String getStringForCode​(int stringCode)
      • isStringType

        public boolean isStringType​(Type type)
      • isAbstractArrayType

        public boolean isAbstractArrayType​(Type type)
      • isArrayType

        public boolean isArrayType​(Type type)
      • isIntArrayType

        public boolean isIntArrayType​(Type type)
      • isFloatArrayType

        public boolean isFloatArrayType​(Type type)
      • isStringArrayType

        public boolean isStringArrayType​(Type type)
      • isBooleanArrayType

        public boolean isBooleanArrayType​(Type type)
      • isByteArrayType

        public boolean isByteArrayType​(Type type)
      • isShortArrayType

        public boolean isShortArrayType​(Type type)
      • isLongArrayType

        public boolean isLongArrayType​(Type type)
      • isDoubleArrayType

        public boolean isDoubleArrayType​(Type type)
      • isFSArrayType

        public boolean isFSArrayType​(Type type)
      • isIntType

        public boolean isIntType​(Type type)
      • isFloatType

        public boolean isFloatType​(Type type)
      • isStringType

        public boolean isStringType​(int type)
      • isByteType

        public boolean isByteType​(Type type)
      • isBooleanType

        public boolean isBooleanType​(Type type)
      • isShortType

        public boolean isShortType​(Type type)
      • isLongType

        public boolean isLongType​(Type type)
      • isDoubleType

        public boolean isDoubleType​(Type type)
      • isAbstractArrayType

        public boolean isAbstractArrayType​(int type)
      • isArrayType

        public boolean isArrayType​(int type)
      • isIntArrayType

        public boolean isIntArrayType​(int type)
      • isFloatArrayType

        public boolean isFloatArrayType​(int type)
      • isStringArrayType

        public boolean isStringArrayType​(int type)
      • isByteArrayType

        public boolean isByteArrayType​(int type)
      • isBooleanArrayType

        public boolean isBooleanArrayType​(int type)
      • isShortArrayType

        public boolean isShortArrayType​(int type)
      • isLongArrayType

        public boolean isLongArrayType​(int type)
      • isDoubleArrayType

        public boolean isDoubleArrayType​(int type)
      • isFSArrayType

        public boolean isFSArrayType​(int type)
      • isIntType

        public boolean isIntType​(int type)
      • isFloatType

        public boolean isFloatType​(int type)
      • isByteType

        public boolean isByteType​(int type)
      • isBooleanType

        public boolean isBooleanType​(int type)
      • isShortType

        public boolean isShortType​(int type)
      • isLongType

        public boolean isLongType​(int type)
      • isDoubleType

        public boolean isDoubleType​(int type)
      • getHeap

        public Heap getHeap()
      • getFeatureOffset

        public int getFeatureOffset​(int feat)
      • setupTSDefault

        public static void setupTSDefault​(TypeSystemImpl ts)
      • getView

        public CAS getView​(int sofaNum)
      • getCurrentView

        public CAS getCurrentView()
        Description copied from interface: CAS
        Get the Cas view that the current component should use. This should only be used by single-view components.
        Specified by:
        getCurrentView in interface CAS
        Returns:
        the Cas view specified for the current component by Sofa mapping. Defaults to _InitialView if there is no Sofa mapping.
      • getJCas

        public JCas getJCas()
                     throws CASException
        Description copied from interface: CAS
        Get the JCas for this CAS.
        Specified by:
        getJCas in interface CAS
        Returns:
        The JCas for this CAS.
        Throws:
        CASException - -
      • getExistingJCas

        public JCas getExistingJCas()
        Internal use only
        Returns:
        corresponding JCas, assuming it exists
      • getJCas

        public JCas getJCas​(SofaFS aSofa)
                     throws CASException
        Description copied from interface: CAS
        Create a JCas view for a Sofa. Note: as of UIMA v2.0, can be replaced with getView(sofaFS).getJCas().
        Specified by:
        getJCas in interface CAS
        Parameters:
        aSofa - a Sofa feature structure in this CAS.
        Returns:
        The JCas view for the given Sofa.
        Throws:
        CASException - -
      • getJCas

        @Deprecated
        public JCas getJCas​(SofaID aSofaID)
                     throws CASException
        Deprecated.
        Description copied from interface: CAS
        Create a JCas view for a Sofa. Note: this is provided for convenience. It is equivalent to getView(aSofaID).getJCas().
        Specified by:
        getJCas in interface CAS
        Parameters:
        aSofaID - the ID of a Sofa defined in this CAS
        Returns:
        The view for the Sofa with ID aSofaID.
        Throws:
        CASException - if no Sofa with the given ID exists in this CAS
      • createView

        public CAS createView​(String aSofaID)
        Description copied from interface: CAS
        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 CAS.setSofaDataArray(FeatureStructure, String), CAS.setSofaDataString(String, String) or CAS.setSofaDataURI(String, String) on the CAS view returned by this method.

        Specified by:
        createView in interface CAS
        Parameters:
        aSofaID - 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.
      • getView

        public CAS getView​(String aSofaID)
        Description copied from interface: CAS
        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 interface CAS
        Parameters:
        aSofaID - 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.
      • getView

        public CAS getView​(SofaFS aSofa)
        Description copied from interface: CAS
        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 interface CAS
        Parameters:
        aSofa - a Sofa feature structure in the CAS
        Returns:
        The view for the given Sofa
      • ll_getTypeSystem

        public LowLevelTypeSystem ll_getTypeSystem()
        Description copied from interface: LowLevelCAS
        Get the low-level version of the type system object. It provides access to the low-level type and feature codes you need to use the data creation and access APIs.
        Specified by:
        ll_getTypeSystem in interface LowLevelCAS
        Returns:
        The low-level type system.
      • ll_getIndexRepository

        public LowLevelIndexRepository ll_getIndexRepository()
        Description copied from interface: LowLevelCAS
        Get the low-level version of the index repository. Use it to gain access to low-level indexes, and thus, low-level iterators.
        Specified by:
        ll_getIndexRepository in interface LowLevelCAS
        Returns:
        A low-level version of the index repository.
      • checkTypingConditions

        public final void checkTypingConditions​(Type domType,
                                                Type ranType,
                                                Feature feat)
        Check the range is appropriate for this type/feature. Throws LowLevelException if it isn't.
        Parameters:
        domType - domain type
        ranType - range type
        feat - feature
      • ll_isRefType

        public final boolean ll_isRefType​(int typeCode)
        Description copied from interface: LowLevelCAS
        Checks if the type code is that of a reference type (anything that's not a basic type, currently Integer, String and Float).
        Specified by:
        ll_isRefType in interface LowLevelCAS
        Parameters:
        typeCode - The type code to check.
        Returns:
        true iff typeCode is the type code of a reference type.
      • ll_getTypeClass

        public final int ll_getTypeClass​(int typeCode)
        Description copied from interface: LowLevelCAS
        Determine the type class of a type. This is useful for generic CAS exploiters to determine what kind of data they're looking at. The type classes currently defined are:
        • TYPE_CLASS_INVALID -- Not a valid type code.
        • TYPE_CLASS_INT -- Integer type.
        • TYPE_CLASS_FLOAT -- Float type.
        • TYPE_CLASS_STRING -- String type.
        • TYPE_CLASS_BOOLEAN -- Boolean type.
        • TYPE_CLASS_BYTE -- Byte type.
        • TYPE_CLASS_SHORT -- Short type.
        • TYPE_CLASS_LONG -- Long type.
        • TYPE_CLASS_DOUBLE -- Double type.
        • TYPE_CLASS_INTARRAY -- Integer array.
        • TYPE_CLASS_FLOATARRAY -- Float array.
        • TYPE_CLASS_STRINGARRAY -- String array.
        • TYPE_CLASS_BOOLEANARRAY -- Boolean array.
        • TYPE_CLASS_BYTEARRAY -- Byte array.
        • TYPE_CLASS_SHORTARRAY -- Short array.
        • TYPE_CLASS_LONGARRAY -- Long array.
        • TYPE_CLASS_DOUBLEARRAY -- Double array.
        • TYPE_CLASS_FSARRAY -- FS array.
        • TYPE_CLASS_FS -- FS type, i.e., all other types, including all user-defined types.
        This method is on the CAS, not the type system, since the specific properties of types are specific to the CAS. The type system does not know, for example, that the CAS treats arrays specially.
        Specified by:
        ll_getTypeClass in interface LowLevelCAS
        Parameters:
        typeCode - The type code.
        Returns:
        A type class for the type code. TYPE_CLASS_INVALID if the type code argument does not represent a valid type code.
      • ll_createFS

        public final int ll_createFS​(int typeCode)
        Description copied from interface: LowLevelCAS
        Create a new FS on the heap.
        Specified by:
        ll_createFS in interface LowLevelCAS
        Parameters:
        typeCode - The low-level code of the type of the FS that should be created. If the typeCode is not a valid type code, the results of this call are undefined.
        Returns:
        The reference of the newly created FS.
      • ll_createFS

        public final int ll_createFS​(int typeCode,
                                     boolean doCheck)
        Description copied from interface: LowLevelCAS
        Create a new FS on the heap.
        Specified by:
        ll_createFS in interface LowLevelCAS
        Parameters:
        typeCode - The low-level code of the type of the FS that should be created. If the typeCode is not a valid type code and the type check flag is not set, the results of this call are undefined.
        doCheck - -
        Returns:
        The reference of the newly created FS.
      • createTempArray

        public int createTempArray​(int type,
                                   int len)
        Create a temporary (i.e., per document) array FS on the heap.
        Parameters:
        type - The type code of the array to be created.
        len - The length of the array to be created.
        Returns:
        -
        Throws:
        ArrayIndexOutOfBoundsException - If type is not a type.
      • ll_createArray

        public int ll_createArray​(int typeCode,
                                  int arrayLength)
        Description copied from interface: LowLevelCAS
        Create a new array.
        Specified by:
        ll_createArray in interface LowLevelCAS
        Parameters:
        typeCode - The type code of the array type. If this is not a valid array type code, the behavior of this call is undefined. Only works for arrays where a value is kept in the main heap (use other ll_createXxxArray for boolean, byte, short, long, and double)
        arrayLength - The length of the array to be created.
        Returns:
        The address of the newly created array.
      • ll_createAuxArray

        public int ll_createAuxArray​(int typeCode,
                                     int arrayLength)
      • ll_createArray

        public int ll_createArray​(int typeCode,
                                  int arrayLength,
                                  boolean doChecks)
        Description copied from interface: LowLevelCAS
        Create a new array.
        Specified by:
        ll_createArray in interface LowLevelCAS
        Parameters:
        typeCode - The type code of the array to be created.
        arrayLength - The length of the array to be created.
        doChecks - Switch to turn on various sanity checks.
        Returns:
        The address of the newly created array.
      • ll_getFSRef

        public final int ll_getFSRef​(FeatureStructure fsImpl)
        Description copied from interface: LowLevelCAS
        Get the low-level reference from an existing FS object. Use this API if you already have a FS object from somewhere, and want to apply low-level APIs to it.
        Specified by:
        ll_getFSRef in interface LowLevelCAS
        Parameters:
        fsImpl - The FS object for which we want the reference.
        Returns:
        The low-level reference of the FS object parameter.
      • ll_getFSForRef

        public <T extends FeatureStructure> T ll_getFSForRef​(int fsRef)
        Description copied from interface: LowLevelCAS
        Return a FS object that corresponds to a low-level reference. Note that this must be a valid reference that has been obtained from the low-level APIs. If the input reference parameter does not represent a valid reference, the results of this call are undefined.
        Specified by:
        ll_getFSForRef in interface LowLevelCAS
        Type Parameters:
        T - the Java class for the Feature Structure
        Parameters:
        fsRef - The FS reference.
        Returns:
        A FS object corresponding to the input reference.
      • ll_getIntValue

        public final int ll_getIntValue​(int fsRef,
                                        int featureCode)
        Description copied from interface: LowLevelCAS
        Get the value of an integer valued feature.
        Specified by:
        ll_getIntValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        Returns:
        The value of the feature.
      • ll_getIntValueFeatOffset

        public final int ll_getIntValueFeatOffset​(int fsRef,
                                                  int featureOffset)
      • ll_getFloatValue

        public final float ll_getFloatValue​(int fsRef,
                                            int featureCode)
        Description copied from interface: LowLevelCAS
        Get the value of a float valued feature.
        Specified by:
        ll_getFloatValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        Returns:
        The value of the feature.
      • ll_getStringValue

        public final String ll_getStringValue​(int fsRef,
                                              int featureCode)
        Description copied from interface: LowLevelCAS
        Get the value of a string valued feature.
        Specified by:
        ll_getStringValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        Returns:
        The value of the feature.
      • ll_getStringValueFeatOffset

        public final String ll_getStringValueFeatOffset​(int fsRef,
                                                        int featureOffset)
      • ll_getRefValue

        public final int ll_getRefValue​(int fsRef,
                                        int featureCode)
        Description copied from interface: LowLevelCAS
        Get the value of a FS reference valued feature.
        Specified by:
        ll_getRefValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        Returns:
        The value of the feature.
      • ll_getRefValueFeatOffset

        public final int ll_getRefValueFeatOffset​(int fsRef,
                                                  int featureOffset)
      • ll_getIntValue

        public final int ll_getIntValue​(int fsRef,
                                        int featureCode,
                                        boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of an integer valued feature.
        Specified by:
        ll_getIntValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value of the feature.
      • ll_getFloatValue

        public final float ll_getFloatValue​(int fsRef,
                                            int featureCode,
                                            boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of a float valued feature.
        Specified by:
        ll_getFloatValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value of the feature.
      • ll_getStringValue

        public final String ll_getStringValue​(int fsRef,
                                              int featureCode,
                                              boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of a string valued feature.
        Specified by:
        ll_getStringValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value of the feature.
      • ll_getRefValue

        public final int ll_getRefValue​(int fsRef,
                                        int featureCode,
                                        boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of a FS reference valued feature.
        Specified by:
        ll_getRefValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the FS from which to obtain the feature value.
        featureCode - The low-level code of the feature whose value is to be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value of the feature.
      • ll_getAnnotBegin

        public int ll_getAnnotBegin​(int fsRef)
      • ll_getAnnotEnd

        public int ll_getAnnotEnd​(int fsRef)
      • ll_setIntValue

        public final void ll_setIntValue​(int fsRef,
                                         int featureCode,
                                         int value)
        Description copied from interface: LowLevelCAS
        Set the value of an integer feature.
        Specified by:
        ll_setIntValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
      • ll_setFloatValue

        public final void ll_setFloatValue​(int fsRef,
                                           int featureCode,
                                           float value)
        Description copied from interface: LowLevelCAS
        Set the value of a float feature.
        Specified by:
        ll_setFloatValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
      • ll_setStringValue

        public final void ll_setStringValue​(int fsRef,
                                            int featureCode,
                                            String value)
        Description copied from interface: LowLevelCAS
        Set the value of a string feature.
        Specified by:
        ll_setStringValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
      • ll_setRefValue

        public final void ll_setRefValue​(int fsRef,
                                         int featureCode,
                                         int value)
        Description copied from interface: LowLevelCAS
        Set the value of a FS reference feature.
        Specified by:
        ll_setRefValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
      • ll_setIntValue

        public final void ll_setIntValue​(int fsRef,
                                         int featureCode,
                                         int value,
                                         boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of an integer feature.
        Specified by:
        ll_setIntValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
        doTypeChecks - Switch to turn on type checking.
      • ll_setFloatValue

        public final void ll_setFloatValue​(int fsRef,
                                           int featureCode,
                                           float value,
                                           boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of a float feature.
        Specified by:
        ll_setFloatValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
        doTypeChecks - Switch to turn on type checking.
      • ll_setStringValue

        public final void ll_setStringValue​(int fsRef,
                                            int featureCode,
                                            String value,
                                            boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of a string feature.
        Specified by:
        ll_setStringValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
        doTypeChecks - Switch to turn on type checking.
      • ll_setCharBufferValue

        public final void ll_setCharBufferValue​(int fsRef,
                                                int featureCode,
                                                char[] buffer,
                                                int start,
                                                int length,
                                                boolean doTypeChecks)
        Specified by:
        ll_setCharBufferValue in interface LowLevelCAS
      • ll_setCharBufferValue

        public final void ll_setCharBufferValue​(int fsRef,
                                                int featureCode,
                                                char[] buffer,
                                                int start,
                                                int length)
        Specified by:
        ll_setCharBufferValue in interface LowLevelCAS
      • ll_copyCharBufferValue

        public int ll_copyCharBufferValue​(int fsRef,
                                          int featureCode,
                                          char[] buffer,
                                          int start)
        Specified by:
        ll_copyCharBufferValue in interface LowLevelCAS
      • ll_setRefValue

        public final void ll_setRefValue​(int fsRef,
                                         int featureCode,
                                         int value,
                                         boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of a FS reference feature.
        Specified by:
        ll_setRefValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference of the FS on which the feature should be set.
        featureCode - The low-level feature code for the feature that should be set.
        value - The value to be assigned to the feature.
        doTypeChecks - Switch to turn on type checking.
      • ll_getIntArrayValue

        public final int ll_getIntArrayValue​(int fsRef,
                                             int position)
        Description copied from interface: LowLevelCAS
        Get the value of an array at a certain position.
        Specified by:
        ll_getIntArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        Returns:
        The value at position.
      • ll_getFloatArrayValue

        public final float ll_getFloatArrayValue​(int fsRef,
                                                 int position)
        Description copied from interface: LowLevelCAS
        Get the value of a float array at a certain position.
        Specified by:
        ll_getFloatArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        Returns:
        The value at position.
      • ll_getStringArrayValue

        public final String ll_getStringArrayValue​(int fsRef,
                                                   int position)
        Description copied from interface: LowLevelCAS
        Get the value of a string array at a certain position.
        Specified by:
        ll_getStringArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        Returns:
        The value at position.
      • ll_getRefArrayValue

        public final int ll_getRefArrayValue​(int fsRef,
                                             int position)
        Description copied from interface: LowLevelCAS
        Get the value of a FS reference array at a certain position.
        Specified by:
        ll_getRefArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        Returns:
        The value at position.
      • checkArrayBounds

        public final void checkArrayBounds​(int fsRef,
                                           int pos)
      • checkArrayBounds

        public final void checkArrayBounds​(int fsRef,
                                           int pos,
                                           int length)
      • ll_getIntArrayValue

        public final int ll_getIntArrayValue​(int fsRef,
                                             int position,
                                             boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of an integer array at a certain position.
        Specified by:
        ll_getIntArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value at position.
      • ll_getFloatArrayValue

        public float ll_getFloatArrayValue​(int fsRef,
                                           int position,
                                           boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of a float array at a certain position.
        Specified by:
        ll_getFloatArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value at position.
      • ll_getStringArrayValue

        public String ll_getStringArrayValue​(int fsRef,
                                             int position,
                                             boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of a string array at a certain position.
        Specified by:
        ll_getStringArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value at position.
      • ll_getRefArrayValue

        public int ll_getRefArrayValue​(int fsRef,
                                       int position,
                                       boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Get the value of a FS reference array at a certain position.
        Specified by:
        ll_getRefArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The reference to the array FS.
        position - The position whose value should be returned.
        doTypeChecks - Switch to turn on type checking.
        Returns:
        The value at position.
      • ll_setIntArrayValue

        public void ll_setIntArrayValue​(int fsRef,
                                        int position,
                                        int value,
                                        boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setIntArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
        doTypeChecks - Switch to turn on type and bounds checking.
      • ll_setFloatArrayValue

        public void ll_setFloatArrayValue​(int fsRef,
                                          int position,
                                          float value,
                                          boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setFloatArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
        doTypeChecks - Switch to turn on type and bounds checking.
      • ll_setStringArrayValue

        public void ll_setStringArrayValue​(int fsRef,
                                           int position,
                                           String value,
                                           boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setStringArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
        doTypeChecks - Switch to turn on type and bounds checking.
      • ll_setRefArrayValue

        public void ll_setRefArrayValue​(int fsRef,
                                        int position,
                                        int value,
                                        boolean doTypeChecks)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setRefArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
        doTypeChecks - Switch to turn on type and bounds checking.
      • ll_setIntArrayValue

        public void ll_setIntArrayValue​(int fsRef,
                                        int position,
                                        int value)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setIntArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
      • ll_setFloatArrayValue

        public void ll_setFloatArrayValue​(int fsRef,
                                          int position,
                                          float value)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setFloatArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
      • ll_setStringArrayValue

        public void ll_setStringArrayValue​(int fsRef,
                                           int position,
                                           String value)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setStringArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
      • ll_setRefArrayValue

        public void ll_setRefArrayValue​(int fsRef,
                                        int position,
                                        int value)
        Description copied from interface: LowLevelCAS
        Set the value of an integer array at a certain position.
        Specified by:
        ll_setRefArrayValue in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference of the array.
        position - The position whose value will be changed.
        value - The new value.
      • ll_getFSRefType

        public int ll_getFSRefType​(int fsRef)
        Description copied from interface: LowLevelCAS
        Get the type code for a FS reference. No bounds checks are performed. If fsRef is not a fs reference, the results are undefined. There is also a checked version of this call, which will give better error messages in case of problems.
        Specified by:
        ll_getFSRefType in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference.
        Returns:
        The type code for the FS reference; a return value of 0 means that the fsRef is invalid, i.e., NULL_FS_REF (but see remarks on bounds checking for this method).
      • ll_getFSRefType

        public int ll_getFSRefType​(int fsRef,
                                   boolean doChecks)
        Description copied from interface: LowLevelCAS
        Get the type code for a FS reference.
        Specified by:
        ll_getFSRefType in interface LowLevelCAS
        Parameters:
        fsRef - The FS reference.
        doChecks - Check fsRef for out-of-range errors. If this switch is not set, and the input reference is not a valid reference, the results are undefined.
        Returns:
        The type code for the FS reference; a return value of 0 means that the fsRef is invalid, i.e., NULL_FS_REF (but see remarks on bounds checking for this method).
      • getLowLevelCAS

        public LowLevelCAS getLowLevelCAS()
        Description copied from interface: CAS
        Get an instance of the low-level CAS. Low-level and regular CAS can be used in parallel, all data is always contained in both.

        Note: This is for internal use.

        Specified by:
        getLowLevelCAS in interface CAS
        Returns:
        A low-level CAS.
        See Also:
        LowLevelCAS
      • size

        public int size()
        Description copied from interface: CAS
        Estimate the memory consumption of this CAS instance (in bytes).
        Specified by:
        size in interface CAS
        Returns:
        The estimated memory used by this CAS instance.
      • getJCasClassLoader

        public ClassLoader getJCasClassLoader()
        Description copied from interface: CASMgr
        Gets the ClassLoader that should be used by the JCas to load the generated FS cover classes for this CAS.
        Specified by:
        getJCasClassLoader in interface CASMgr
        Returns:
        the JCas ClassLoder for this CAS
      • setJCasClassLoader

        public void setJCasClassLoader​(ClassLoader classLoader)
        Description copied from interface: CASMgr
        Sets the ClassLoader that should be used by the JCas to load the generated FS cover classes for this CAS.
        Specified by:
        setJCasClassLoader in interface CASMgr
        Parameters:
        classLoader - the JCas ClassLoder for this CAS
      • switchClassLoaderLockCas

        public void switchClassLoaderLockCas​(Object userCode)
      • switchClassLoaderLockCasCL

        public void switchClassLoaderLockCasCL​(ClassLoader newClassLoader)
      • switchClassLoader

        public void switchClassLoader​(ClassLoader newClassLoader)
      • usingBaseClassLoader

        public boolean usingBaseClassLoader()
      • restoreClassLoaderUnlockCas

        public void restoreClassLoaderUnlockCas()
      • createFeatureValuePath

        public FeatureValuePath createFeatureValuePath​(String featureValuePath)
                                                throws CASRuntimeException
        Description copied from interface: CAS
        Create a feature-value path from a string.
        Specified by:
        createFeatureValuePath in interface CAS
        Parameters:
        featureValuePath - String representation of the feature-value path.
        Returns:
        Feature-value path object.
        Throws:
        CASRuntimeException - If the input string is not well-formed.
      • 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 class AbstractCas_ImplBase
        Parameters:
        aCasOwner - -
      • ll_getByteValue

        public byte ll_getByteValue​(int fsRef,
                                    int featureCode)
        Specified by:
        ll_getByteValue in interface LowLevelCAS
      • ll_getByteValue

        public byte ll_getByteValue​(int fsRef,
                                    int featureCode,
                                    boolean doTypeChecks)
        Specified by:
        ll_getByteValue in interface LowLevelCAS
      • ll_getBooleanValue

        public boolean ll_getBooleanValue​(int fsRef,
                                          int featureCode)
        Specified by:
        ll_getBooleanValue in interface LowLevelCAS
      • ll_getBooleanValue

        public boolean ll_getBooleanValue​(int fsRef,
                                          int featureCode,
                                          boolean doTypeChecks)
        Specified by:
        ll_getBooleanValue in interface LowLevelCAS
      • ll_getShortValue

        public short ll_getShortValue​(int fsRef,
                                      int featureCode)
        Specified by:
        ll_getShortValue in interface LowLevelCAS
      • ll_getShortValue

        public short ll_getShortValue​(int fsRef,
                                      int featureCode,
                                      boolean doTypeChecks)
        Specified by:
        ll_getShortValue in interface LowLevelCAS
      • ll_getLongValue

        public long ll_getLongValue​(int offset)
      • ll_getLongValue

        public long ll_getLongValue​(int fsRef,
                                    int featureCode)
        Specified by:
        ll_getLongValue in interface LowLevelCAS
      • ll_getLongValueFeatOffset

        public long ll_getLongValueFeatOffset​(int fsRef,
                                              int featureOffset)
      • ll_getLongValue

        public long ll_getLongValue​(int fsRef,
                                    int featureCode,
                                    boolean doTypeChecks)
        Specified by:
        ll_getLongValue in interface LowLevelCAS
      • ll_getDoubleValue

        public double ll_getDoubleValue​(int fsRef,
                                        int featureCode)
        Specified by:
        ll_getDoubleValue in interface LowLevelCAS
      • ll_getDoubleValueFeatOffset

        public double ll_getDoubleValueFeatOffset​(int fsRef,
                                                  int featureOffset)
      • ll_getDoubleValue

        public double ll_getDoubleValue​(int fsRef,
                                        int featureCode,
                                        boolean doTypeChecks)
        Specified by:
        ll_getDoubleValue in interface LowLevelCAS
      • ll_setBooleanValue

        public void ll_setBooleanValue​(int fsRef,
                                       int featureCode,
                                       boolean value)
        Specified by:
        ll_setBooleanValue in interface LowLevelCAS
      • ll_setBooleanValue

        public void ll_setBooleanValue​(int fsRef,
                                       int featureCode,
                                       boolean value,
                                       boolean doTypeChecks)
        Specified by:
        ll_setBooleanValue in interface LowLevelCAS
      • ll_setByteValue

        public final void ll_setByteValue​(int fsRef,
                                          int featureCode,
                                          byte value)
        Specified by:
        ll_setByteValue in interface LowLevelCAS
      • ll_setByteValue

        public void ll_setByteValue​(int fsRef,
                                    int featureCode,
                                    byte value,
                                    boolean doTypeChecks)
        Specified by:
        ll_setByteValue in interface LowLevelCAS
      • ll_setShortValue

        public final void ll_setShortValue​(int fsRef,
                                           int featureCode,
                                           short value)
        Specified by:
        ll_setShortValue in interface LowLevelCAS
      • ll_setShortValue

        public void ll_setShortValue​(int fsRef,
                                     int featureCode,
                                     short value,
                                     boolean doTypeChecks)
        Specified by:
        ll_setShortValue in interface LowLevelCAS
      • ll_setLongValue

        public void ll_setLongValue​(int fsRef,
                                    int featureCode,
                                    long value)
        Specified by:
        ll_setLongValue in interface LowLevelCAS
      • ll_setLongValue

        public void ll_setLongValue​(int fsRef,
                                    int featureCode,
                                    long value,
                                    boolean doTypeChecks)
        Specified by:
        ll_setLongValue in interface LowLevelCAS
      • ll_setDoubleValue

        public void ll_setDoubleValue​(int fsRef,
                                      int featureCode,
                                      double value)
        Specified by:
        ll_setDoubleValue in interface LowLevelCAS
      • ll_setDoubleValue

        public void ll_setDoubleValue​(int fsRef,
                                      int featureCode,
                                      double value,
                                      boolean doTypeChecks)
        Specified by:
        ll_setDoubleValue in interface LowLevelCAS
      • ll_getByteArrayValue

        public byte ll_getByteArrayValue​(int fsRef,
                                         int position,
                                         boolean doTypeChecks)
        Specified by:
        ll_getByteArrayValue in interface LowLevelCAS
      • ll_getBooleanArrayValue

        public boolean ll_getBooleanArrayValue​(int fsRef,
                                               int position,
                                               boolean doTypeChecks)
        Specified by:
        ll_getBooleanArrayValue in interface LowLevelCAS
      • ll_getShortArrayValue

        public short ll_getShortArrayValue​(int fsRef,
                                           int position,
                                           boolean doTypeChecks)
        Specified by:
        ll_getShortArrayValue in interface LowLevelCAS
      • ll_getLongArrayValue

        public long ll_getLongArrayValue​(int fsRef,
                                         int position,
                                         boolean doTypeChecks)
        Specified by:
        ll_getLongArrayValue in interface LowLevelCAS
      • ll_getDoubleArrayValue

        public double ll_getDoubleArrayValue​(int fsRef,
                                             int position,
                                             boolean doTypeChecks)
        Specified by:
        ll_getDoubleArrayValue in interface LowLevelCAS
      • ll_setByteArrayValue

        public void ll_setByteArrayValue​(int fsRef,
                                         int position,
                                         byte value)
        Specified by:
        ll_setByteArrayValue in interface LowLevelCAS
      • ll_setByteArrayValue

        public void ll_setByteArrayValue​(int fsRef,
                                         int position,
                                         byte value,
                                         boolean doTypeChecks)
        Specified by:
        ll_setByteArrayValue in interface LowLevelCAS
      • ll_setBooleanArrayValue

        public void ll_setBooleanArrayValue​(int fsRef,
                                            int position,
                                            boolean b)
        Specified by:
        ll_setBooleanArrayValue in interface LowLevelCAS
      • ll_setBooleanArrayValue

        public void ll_setBooleanArrayValue​(int fsRef,
                                            int position,
                                            boolean value,
                                            boolean doTypeChecks)
        Specified by:
        ll_setBooleanArrayValue in interface LowLevelCAS
      • ll_setShortArrayValue

        public void ll_setShortArrayValue​(int fsRef,
                                          int position,
                                          short value)
        Specified by:
        ll_setShortArrayValue in interface LowLevelCAS
      • ll_setShortArrayValue

        public void ll_setShortArrayValue​(int fsRef,
                                          int position,
                                          short value,
                                          boolean doTypeChecks)
        Specified by:
        ll_setShortArrayValue in interface LowLevelCAS
      • ll_setLongArrayValue

        public void ll_setLongArrayValue​(int fsRef,
                                         int position,
                                         long value)
        Specified by:
        ll_setLongArrayValue in interface LowLevelCAS
      • ll_setLongArrayValue

        public void ll_setLongArrayValue​(int fsRef,
                                         int position,
                                         long value,
                                         boolean doTypeChecks)
        Specified by:
        ll_setLongArrayValue in interface LowLevelCAS
      • ll_setDoubleArrayValue

        public void ll_setDoubleArrayValue​(int fsRef,
                                           int position,
                                           double d)
        Specified by:
        ll_setDoubleArrayValue in interface LowLevelCAS
      • ll_setDoubleArrayValue

        public void ll_setDoubleArrayValue​(int fsRef,
                                           int position,
                                           double value,
                                           boolean doTypeChecks)
        Specified by:
        ll_setDoubleArrayValue in interface LowLevelCAS
      • isAnnotationType

        public boolean isAnnotationType​(Type t)
      • isSubtypeOfAnnotationBaseType

        public boolean isSubtypeOfAnnotationBaseType​(int t)
        Parameters:
        t - the type code to test
        Returns:
        true if that type is subsumed by AnnotationBase type
      • createAnnotation

        public AnnotationFS createAnnotation​(Type type,
                                             int begin,
                                             int end)
        Description copied from interface: CAS
        Create a new annotation. Note that you still need to insert the annotation into the index repository yourself.
        Specified by:
        createAnnotation in interface CAS
        Parameters:
        type - The type of the annotation.
        begin - The start of the annotation.
        end - The end of the annotation.
        Returns:
        A new annotation object.
      • ll_createAnnotation

        public int ll_createAnnotation​(int typeCode,
                                       int begin,
                                       int end)
      • getAnnotationIndex

        public <T extends AnnotationFSAnnotationIndex<T> getAnnotationIndex()
        The generic spec T extends AnnotationFS (rather than AnnotationFS) allows the method JCasImpl getAnnotationIndex to return Annotation instead of AnnotationFS
        Specified by:
        getAnnotationIndex in interface CAS
        Type Parameters:
        T - the Java class associated with the annotation index
        Returns:
        the annotation index
      • getAnnotationIndex

        public <T extends AnnotationFSAnnotationIndex<T> getAnnotationIndex​(Type type)
        Description copied from interface: CAS
        Get the standard annotation index restricted to a specific annotation type.
        Specified by:
        getAnnotationIndex in interface CAS
        Type Parameters:
        T - the topmost Java class corresponding to the type
        Parameters:
        type - The annotation type the index is restricted to.
        Returns:
        The standard annotation index, restricted to type.
        See Also:
        CAS.getAnnotationIndex(Type)
      • getAnnotationType

        public Type getAnnotationType()
        Description copied from interface: CAS
        Get the type object for the annotation type.
        Specified by:
        getAnnotationType in interface CAS
        Returns:
        The annotation type.
        See Also:
        CAS.getAnnotationType()
      • getEndFeature

        public Feature getEndFeature()
        Description copied from interface: CAS
        Get the feature object for the annotation end feature.
        Specified by:
        getEndFeature in interface CAS
        Returns:
        The annotation end feature.
        See Also:
        CAS.getEndFeature()
      • getBeginFeature

        public Feature getBeginFeature()
        Description copied from interface: CAS
        Get the feature object for the annotation begin feature.
        Specified by:
        getBeginFeature in interface CAS
        Returns:
        The annotation begin feature.
        See Also:
        CAS.getBeginFeature()
      • ll_createDocumentAnnotation

        public int ll_createDocumentAnnotation​(int length)
      • ll_createDocumentAnnotationNoIndex

        public int ll_createDocumentAnnotationNoIndex​(int begin,
                                                      int end)
      • updateDocumentAnnotation

        public void updateDocumentAnnotation()
      • getDocumentAnnotation

        public <T extends AnnotationFS> T getDocumentAnnotation()
        Generic issue: The returned document annotation could be either an instance of DocumentAnnotation or an instance of AnnotationImpl - the Java cover class used for annotations when JCas is not being used.
        Specified by:
        getDocumentAnnotation in interface CAS
        Type Parameters:
        T - the Java class for the document annotation. Could be the JCas cover class or FeatureStructure
        Returns:
        The document annotation, or null if there is none. The return value is the JCas cover class or the plain Java cover class for FeatureStructures if JCas is not in use.
      • ll_getDocumentAnnotation

        public int ll_getDocumentAnnotation()
        Returns:
        the fs addr of the document annotation found via the index, or 0 if not there
      • getDocumentLanguage

        public String getDocumentLanguage()
        Description copied from interface: CAS
        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 interface CAS
        Returns:
        language identifier
      • getDocumentText

        public String getDocumentText()
        Description copied from interface: CAS
        Get the document text.
        Specified by:
        getDocumentText in interface CAS
        Returns:
        The text being analyzed, or null if not set.
      • getSofaDataString

        public String getSofaDataString()
        Description copied from interface: CAS
        Get the Sofa Data String (a.k.a. the document text).
        Specified by:
        getSofaDataString in interface CAS
        Returns:
        The Sofa data string, or null if not set.
      • getSofaDataArray

        public FeatureStructure getSofaDataArray()
        Description copied from interface: CAS
        Get the Sofa data array.
        Specified by:
        getSofaDataArray in interface CAS
        Returns:
        The Sofa Data being analyzed, or null if not set.
      • getSofaDataURI

        public String getSofaDataURI()
        Description copied from interface: CAS
        Get the Sofa data array.
        Specified by:
        getSofaDataURI in interface CAS
        Returns:
        The Sofa URI being analyzed, or null if not set.
      • getSofaDataStream

        public InputStream getSofaDataStream()
        Description copied from interface: CAS
        Get the Sofa data as a byte stream.
        Specified by:
        getSofaDataStream in interface CAS
        Returns:
        A stream handle to the Sofa Data, or null if not set.
      • getSofaMimeType

        public String getSofaMimeType()
        Description copied from interface: CAS
        Get the mime type of the Sofa data being analyzed.
        Specified by:
        getSofaMimeType in interface CAS
        Returns:
        the mime type of the Sofa
      • getSofa

        public SofaFS getSofa()
        Description copied from interface: CAS
        Get the Sofa feature structure associated with this CAS view.
        Specified by:
        getSofa in interface CAS
        Returns:
        The SofaFS associated with this CAS view.
      • ll_getSofa

        public int ll_getSofa()
        Specified by:
        ll_getSofa in interface LowLevelCAS
        Returns:
        the addr of the sofaFS associated with this view, or 0
      • getViewName

        public String getViewName()
        Description copied from interface: CAS
        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 interface CAS
        Returns:
        The name of the view
      • setDocumentLanguage

        public void setDocumentLanguage​(String languageCode)
        Description copied from interface: CAS
        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 interface CAS
        Parameters:
        languageCode - -
      • setDocumentText

        public void setDocumentText​(String text)
        Description copied from interface: CAS
        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 interface CAS
        Parameters:
        text - The text to be analyzed.
      • setSofaDataString

        public void setSofaDataString​(String text,
                                      String mime)
                               throws CASRuntimeException
        Description copied from interface: CAS
        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 interface CAS
        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,
                                     String mime)
                              throws CASRuntimeException
        Description copied from interface: CAS
        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 interface CAS
        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​(String uri,
                                   String mime)
                            throws CASRuntimeException
        Description copied from interface: CAS
        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 interface CAS
        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.
      • setCurrentComponentInfo

        public void setCurrentComponentInfo​(ComponentInfo info)
        Description copied from interface: CAS
        Informs the CAS of relevant information about the component that is currently processing it. This is called by the framework automatically; users do not need to call it.
        Specified by:
        setCurrentComponentInfo in interface CAS
        Parameters:
        info - information about the component that is currently processing this CAS.
      • addFsToIndexes

        public void addFsToIndexes​(FeatureStructure fs)
        Description copied from interface: CAS
        Add a feature structure to all appropriate indexes in the repository associated with this CAS View. 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 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 call removeFsFromIndexes(...) on the FS, change the feature values, then call addFsToIndexes(...) again.

        Specified by:
        addFsToIndexes in interface CAS
        Parameters:
        fs - The Feature Structure to be added.
        See Also:
        CAS.addFsToIndexes(FeatureStructure fs)
      • removeFsFromIndexes

        public void removeFsFromIndexes​(FeatureStructure fs)
        Description copied from interface: CAS
        Remove a feature structure from all indexes in the repository associated with this CAS View. The remove operation removes the exact fs from the indexes, unlike operations such as moveTo which use the fs argument as a template. It is not an error if the FS is not present in the indexes.
        Specified by:
        removeFsFromIndexes in interface CAS
        Parameters:
        fs - The Feature Structure to be removed.
        See Also:
        CAS.removeFsFromIndexes(FeatureStructure fs)
      • ll_getSofaCasView

        public CASImpl ll_getSofaCasView​(int addr)
        Specified by:
        ll_getSofaCasView in interface LowLevelCAS
        Parameters:
        addr - the heap address of a feature structure which is a subtype of AnnotationBase
        Returns:
        the view associated with this FS where it could be indexed
      • getViewIterator

        public Iterator<CAS> getViewIterator()
        Description copied from interface: CAS
        Get iterator over all views in this CAS. 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 interface CAS
        Returns:
        an iterator which returns all views. Each object returned by the iterator is of type CAS.
      • getViewIterator

        public Iterator<CAS> getViewIterator​(String localViewNamePrefix)
        Description copied from interface: CAS
        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 interface CAS
        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 CAS.
      • doUseJcasCache

        public final boolean doUseJcasCache()
      • protectIndexes

        public AutoCloseable protectIndexes()
        protectIndexes Within the scope of protectIndexes, feature updates are checked, and if found to be a key, and the FS is in a corruptable index, then the FS is removed from the indexes (in all necessary views) (perhaps multiple times if the FS was added to the indexes multiple times), and this removal is recorded on an new instance of FSsTobeReindexed appended to fssTobeAddedback. Later, when the protectIndexes is closed, the tobe items are added back to the indies.
        Specified by:
        protectIndexes in interface CAS
        Returns:
        an object used to record things that need adding back
      • protectIndexes

        public void protectIndexes​(Runnable r)
        Description copied from interface: CAS
        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 interface CAS
        Parameters:
        r - an inner block of code to be run with
      • createMarker

        public Marker createMarker()
        The current implementation only supports 1 marker call per CAS. Subsequent calls will throw an error. The design is intended to support (at some future point) multiple markers; for this to work, the intent is to extend the MarkerImpl to keep track of indexes into these IntVectors specifying where that marker starts/ends.
        Specified by:
        createMarker in interface CAS
        Returns:
        a marker object.
      • getCurrentMark

        public MarkerImpl getCurrentMark()