in uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java [140:199]
public static ExternalResourceDescription createNamedResourceDescription(final String aName,
Class<? extends Resource> aInterface, Object... aParams) {
ConfigurationParameterFactory.ensureParametersComeInPairs(aParams);
// Extract ExternalResourceDescriptions from configurationData
List<ExternalResourceBinding> bindings = new ArrayList<ExternalResourceBinding>();
List<ExternalResourceDescription> descs = new ArrayList<ExternalResourceDescription>();
for (Entry<String, ExternalResourceDescription> res : extractResourceParameters(aParams)
.entrySet()) {
bindings.add(createResourceBinding(res.getKey(), res.getValue()));
descs.add(res.getValue());
}
ResourceSpecifier spec;
if (ConfigurableDataResource_impl.class.isAssignableFrom(aInterface)) {
ConfigurationData cfg = ConfigurationParameterFactory.createConfigurationData(aParams);
ResourceMetaData_impl meta = new ResourceMetaData_impl();
ConfigurationData reflectedConfigurationData = createConfigurationData(aInterface);
ResourceCreationSpecifierFactory.setConfigurationParameters(meta,
reflectedConfigurationData.configurationParameters,
reflectedConfigurationData.configurationValues);
ResourceCreationSpecifierFactory.setConfigurationParameters(meta, cfg.configurationParameters,
cfg.configurationValues);
ConfigurableDataResourceSpecifier_impl spec1 = new ConfigurableDataResourceSpecifier_impl();
spec1.setUrl("");
spec1.setMetaData(meta);
spec = spec1;
} else {
List<Parameter> params = new ArrayList<Parameter>();
if (aParams != null) {
for (int i = 0; i < aParams.length / 2; i++) {
if (ExternalResourceFactory
.getResourceParameterType(aParams[i * 2 + 1]) != ResourceValueType.NO_RESOURCE) {
continue;
}
Parameter param = new Parameter_impl();
param.setName((String) aParams[i * 2]);
param.setValue((String) aParams[i * 2 + 1]);
params.add(param);
}
}
CustomResourceSpecifier spec1 = UIMAFramework.getResourceSpecifierFactory()
.createCustomResourceSpecifier();
spec1.setResourceClassName(aInterface.getName());
spec1.setParameters(params.toArray(new Parameter[params.size()]));
spec = spec1;
}
ExtendedExternalResourceDescription_impl extRes = new ExtendedExternalResourceDescription_impl();
extRes.setName(aName);
extRes.setResourceSpecifier(spec);
extRes.setExternalResourceBindings(bindings);
extRes.setExternalResources(descs);
return extRes;
}