Class CasMultiplier_ImplBase

  • All Implemented Interfaces:
    AnalysisComponent

    public abstract class CasMultiplier_ImplBase
    extends AnalysisComponent_ImplBase
    Base class to be extended by CAS Multipliers that use the CAS interface. A CAS Multiplier can produce multiple output CASes while processing an input CAS. See AnalysisComponent for a description of how the framework calls the methods on this interface.
    • Field Detail

      • mLastTypeSystem

        private TypeSystem mLastTypeSystem
        Stores the last type system that this component operated on, so we can tell when typeSystemInit needs to be called.
    • Constructor Detail

      • CasMultiplier_ImplBase

        public CasMultiplier_ImplBase()
    • Method Detail

      • getRequiredCasInterface

        public final java.lang.Class<CAS> getRequiredCasInterface()
        Description copied from interface: AnalysisComponent
        Returns the specific CAS interface that this AnalysisComponent requires the framework to pass to its AnalysisComponent.process(AbstractCas) method.
        Returns:
        the required CAS interface. This must specify a subtype of AbstractCas.
      • getCasInstancesRequired

        public int getCasInstancesRequired()
        Returns the maximum number of CAS instances that this CAS Multiplier expects to use at the same time. Returns a default value of 1, which will be sufficient for most CAS Multipliers. Only if there is a clear need should this be overridden to return something greater than 1.
        Returns:
        the number of CAS instances required by this AnalysisComponent.
      • typeSystemInit

        public void typeSystemInit​(TypeSystem aTypeSystem)
                            throws AnalysisEngineProcessException
        Informs this annotator that the CAS TypeSystem has changed. The Analysis Engine calls this from PrimitiveAnalysisEngine_impl which-calls CasMultiplier_ImplBase.process which-calls checkTypeSystemChange and will call it again whenever the CAS TypeSystem changes.

        In this method, the Annotator should use the TypeSystem to resolve the names of Type and Features to the actual Type and Feature objects, which can then be used during processing.

        Parameters:
        aTypeSystem - the new type system to use as input to your initialization
        Throws:
        AnalysisEngineProcessException - if the provided type system is missing types or features required by this annotator
      • getEmptyCAS

        protected final CAS getEmptyCAS()
        Gets an empty CAS that this CAS Multiplier can then populate.
        Returns:
        an empty CAS
      • checkTypeSystemChange

        private void checkTypeSystemChange​(CAS aCAS)
                                    throws AnalysisEngineProcessException
        Checks it the type system of the given CAS is different from the last type system this component was operating on. If it is different, calls the typeSystemInit method on the component.
        Throws:
        AnalysisEngineProcessException