in uimafit-core/src/main/java/org/apache/uima/fit/factory/ConfigurationParameterFactory.java [604:644]
public static Map<String, Object> getParameterSettings(ResourceSpecifier spec) {
Map<String, Object> settings = new HashMap<String, Object>();
if (spec instanceof CustomResourceSpecifier) {
for (Parameter p : ((CustomResourceSpecifier) spec).getParameters()) {
settings.put(p.getName(), p.getValue());
}
} else if (spec instanceof PearSpecifier) {
PearSpecifier pearSpec = ((PearSpecifier) spec);
// Legacy parameters that only support string values.
Parameter[] parameters = pearSpec.getParameters();
if (parameters != null) {
for (Parameter parameter : parameters) {
settings.put(parameter.getName(), parameter.getValue());
}
}
// Parameters supporting arbitrary objects as values
NameValuePair[] pearParameters = pearSpec.getPearParameters();
if (pearParameters != null) {
for (NameValuePair pearParameter : pearParameters) {
settings.put(pearParameter.getName(), pearParameter.getValue());
}
}
} else if (spec instanceof ResourceCreationSpecifier) {
for (NameValuePair p : ((ResourceCreationSpecifier) spec).getMetaData()
.getConfigurationParameterSettings().getParameterSettings()) {
settings.put(p.getName(), p.getValue());
}
} else if (spec instanceof ConfigurableDataResourceSpecifier) {
for (NameValuePair p : ((ResourceCreationSpecifier) spec).getMetaData()
.getConfigurationParameterSettings().getParameterSettings()) {
settings.put(p.getName(), p.getValue());
}
} else {
throw new IllegalArgumentException(
"Unsupported resource specifier class [" + spec.getClass() + "]");
}
return settings;
}