// first, create Collections of TypeSystems, TypePriorities, and Index Descriptions
List<TypeSystemDescription> typeSystems = new ArrayList<TypeSystemDescription>();
List<TypePriorities> typePriorities = new ArrayList<TypePriorities>();
List<FsIndexCollection> fsIndexCollections = new ArrayList<FsIndexCollection>();
TypePriorities thisAEsTypePriorities = getAnalysisEngineMetaData().getTypePriorities();
if (thisAEsTypePriorities != null) {
typePriorities.add(thisAEsTypePriorities);
}
FsIndexCollection thisAEsIndexes = getAnalysisEngineMetaData().getFsIndexCollection();
if (thisAEsIndexes != null) {
fsIndexCollections.add(thisAEsIndexes);
}
// iterate over metadata for all components
Iterator<ProcessingResourceMetaData> metadataIterator = _getComponentMetaData().values().iterator();
while (metadataIterator.hasNext()) {
ProcessingResourceMetaData md = metadataIterator.next();
if (md.getTypeSystem() != null)
typeSystems.add(md.getTypeSystem());
if (md.getTypePriorities() != null)
typePriorities.add(md.getTypePriorities());
if (md.getFsIndexCollection() != null)
fsIndexCollections.add(md.getFsIndexCollection());
}
// now do merge
TypeSystemDescription aggTypeDesc = CasCreationUtils.mergeTypeSystems(typeSystems,
getResourceManager());
TypePriorities aggTypePriorities = CasCreationUtils.mergeTypePriorities(typePriorities,
getResourceManager());
FsIndexCollection aggIndexColl = CasCreationUtils.mergeFsIndexes(fsIndexCollections,
getResourceManager());
// assign results of merge to this aggregate AE's metadata