TypePriorities typePriorities, FsIndexCollection indexes, Capability[] capabilities,
ConfigurationParameter[] configurationParameters, Object[] configurationValues,
Map<String, ExternalResourceDescription> externalResources)
throws ResourceInitializationException {
// create the descriptor and set configuration parameters
CollectionReaderDescription desc = UIMAFramework.getResourceSpecifierFactory()
.createCollectionReaderDescription();
desc.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME);
desc.setImplementationName(readerClass.getName());
// set parameters
setParameters(desc, readerClass, configurationParameters, configurationValues);
// Configure resource meta data
ResourceMetaData meta = desc.getMetaData();
ResourceMetaDataFactory.configureResourceMetaData(meta, readerClass);
// set the type system
if (typeSystem != null) {
desc.getCollectionReaderMetaData().setTypeSystem(typeSystem);
}
if (typePriorities != null) {
desc.getCollectionReaderMetaData().setTypePriorities(typePriorities);
}
// set indexes from the argument to this call or from the annotation present in the
// component if the argument is null
if (indexes != null) {
desc.getCollectionReaderMetaData().setFsIndexCollection(indexes);
} else {
desc.getCollectionReaderMetaData().setFsIndexCollection(createFsIndexCollection(readerClass));
}
// set capabilities from the argument to this call or from the annotation present in the
// component if the argument is null
if (capabilities != null) {
desc.getCollectionReaderMetaData().setCapabilities(capabilities);
} else {
Capability capability = CapabilityFactory.createCapability(readerClass);
if (capability != null) {
desc.getCollectionReaderMetaData().setCapabilities(new Capability[] { capability });
}
}
// Extract external resource dependencies
desc.setExternalResourceDependencies(createExternalResourceDependencies(readerClass));
// Bind External Resources
if (externalResources != null) {
for (Entry<String, ExternalResourceDescription> e : externalResources.entrySet()) {
bindExternalResource(desc, e.getKey(), e.getValue());