in uimafit-core/src/main/java/org/apache/uima/fit/factory/ConfigurationParameterFactory.java [97:172]
public static Object getDefaultValue(Field field) {
if (isConfigurationParameterField(field)) {
org.apache.uima.fit.descriptor.ConfigurationParameter annotation = ReflectionUtil
.getAnnotation(field, org.apache.uima.fit.descriptor.ConfigurationParameter.class);
String[] stringValue = annotation.defaultValue();
if (stringValue.length == 1 && stringValue[0]
.equals(org.apache.uima.fit.descriptor.ConfigurationParameter.NO_DEFAULT_VALUE)) {
return null;
}
String valueType = getConfigurationParameterType(field);
boolean isMultiValued = isMultiValued(field);
if (!isMultiValued) {
if (ConfigurationParameter.TYPE_BOOLEAN.equals(valueType)) {
return Boolean.parseBoolean(stringValue[0]);
} else if (ConfigurationParameter.TYPE_FLOAT.equals(valueType)) {
return Float.parseFloat(stringValue[0]);
} else if (ConfigurationParameter.TYPE_DOUBLE.equals(valueType)) {
return Double.parseDouble(stringValue[0]);
} else if (ConfigurationParameter.TYPE_INTEGER.equals(valueType)) {
return Integer.parseInt(stringValue[0]);
} else if (ConfigurationParameter.TYPE_LONG.equals(valueType)) {
return Long.parseLong(stringValue[0]);
} else if (ConfigurationParameter.TYPE_STRING.equals(valueType)) {
return stringValue[0];
}
throw new UIMA_IllegalArgumentException(
UIMA_IllegalArgumentException.METADATA_ATTRIBUTE_TYPE_MISMATCH,
new Object[] { valueType, "type" });
} else {
if (ConfigurationParameter.TYPE_BOOLEAN.equals(valueType)) {
Boolean[] returnValues = new Boolean[stringValue.length];
for (int i = 0; i < stringValue.length; i++) {
returnValues[i] = Boolean.parseBoolean(stringValue[i]);
}
return returnValues;
} else if (ConfigurationParameter.TYPE_FLOAT.equals(valueType)) {
Float[] returnValues = new Float[stringValue.length];
for (int i = 0; i < stringValue.length; i++) {
returnValues[i] = Float.parseFloat(stringValue[i]);
}
return returnValues;
} else if (ConfigurationParameter.TYPE_DOUBLE.equals(valueType)) {
Double[] returnValues = new Double[stringValue.length];
for (int i = 0; i < stringValue.length; i++) {
returnValues[i] = Double.parseDouble(stringValue[i]);
}
return returnValues;
} else if (ConfigurationParameter.TYPE_INTEGER.equals(valueType)) {
Integer[] returnValues = new Integer[stringValue.length];
for (int i = 0; i < stringValue.length; i++) {
returnValues[i] = Integer.parseInt(stringValue[i]);
}
return returnValues;
} else if (ConfigurationParameter.TYPE_LONG.equals(valueType)) {
Long[] returnValues = new Long[stringValue.length];
for (int i = 0; i < stringValue.length; i++) {
returnValues[i] = Long.parseLong(stringValue[i]);
}
return returnValues;
} else if (ConfigurationParameter.TYPE_STRING.equals(valueType)) {
return stringValue;
}
throw new UIMA_IllegalArgumentException(
UIMA_IllegalArgumentException.METADATA_ATTRIBUTE_TYPE_MISMATCH,
new Object[] { valueType, "type" });
}
} else {
throw new IllegalArgumentException("field is not annotated with annotation of type "
+ org.apache.uima.fit.descriptor.ConfigurationParameter.class.getName());
}
}