/** * Forces initialization of a Cas Pool if this is a Cas Multiplier delegate collocated with an * aggregate. The parent aggregate calls this method when all type systems have been merged. */publicsynchronizedvoid onInitialize() {
// Component's Cas Pool is registered lazily, when the process() is called for// the first time. For monitoring purposes, we need the comoponent's Cas Pool// MBeans to register during initialization of the service. For a Cas Multiplier// force creation of the Cas Pool and registration of a Cas Pool with the JMX Server.// Just get the CAS and release it back to the component's Cas Pool.if (isCasMultiplier() && !isTopLevelComponent() ) {
boolean isUimaAggregate = false;
if ( !(resourceSpecifier instanceof CollectionReaderDescription) ) {
// determine if this AE is a UIMA aggregate isUimaAggregate = ((AnalysisEngineDescription) resourceSpecifier).isPrimitive() == false ? true : false;
}
if ( !isUimaAggregate ) { // !uima core aggregate CM CAS cas = (CAS) getUimaContext().getEmptyCas(CAS.class);
cas.release();
}
}
}

Javadoc

Retrieves whether the AnalysisEngine is primitive (consisting of one annotator), as opposed to
aggregate (containing multiple delegate AnalysisEngines).

Some of the methods on this class apply only to one type of AnalysisEngine:
#getAnnotatorImplementationName() - primitive AnalysisEngine only
#getDelegateAnalysisEngineSpecifiers() - aggregate AnalysisEngine only
#getFlowControllerDeclaration() - aggregate AnalysisEngine only