/** * This method generates the default name of a configuration parameter that is defined by an * {@link org.apache.uima.fit.descriptor.ConfigurationParameter} annotation when no name is given * * @param field * the field to analyze * @return the parameter name */ public static String getConfigurationParameterName(Field field) { if (isConfigurationParameterField(field)) { org.apache.uima.fit.descriptor.ConfigurationParameter annotation = ReflectionUtil .getAnnotation(field, org.apache.uima.fit.descriptor.ConfigurationParameter.class); String name = annotation.name(); if (name.equals(org.apache.uima.fit.descriptor.ConfigurationParameter.USE_FIELD_NAME)) { name = field.getName(); } return name; } return null; }
/** * This method creates configuration data for a given class definition using reflection and the * configuration parameter annotation * * @param componentClass * the class to analyze * @return the configuration settings extracted from the class */ public static ConfigurationData createConfigurationData(Class<?> componentClass) { List<ConfigurationParameter> configurationParameters = new ArrayList<ConfigurationParameter>(); List<Object> configurationValues = new ArrayList<Object>(); for (Field field : ReflectionUtil.getFields(componentClass)) { if (ConfigurationParameterFactory.isConfigurationParameterField(field)) { configurationParameters.add(ConfigurationParameterFactory.createPrimitiveParameter(field)); configurationValues.add(ConfigurationParameterFactory.getDefaultValue(field)); } } return new ConfigurationData( configurationParameters.toArray(new ConfigurationParameter[configurationParameters .size()]), configurationValues.toArray(new Object[configurationValues.size()])); }
Field[] fields = cls.getDeclaredFields(); for (Field field : fields) { if (ConfigurationParameterFactory.isConfigurationParameterField(field)) { org.apache.uima.fit.descriptor.ConfigurationParameter annotation = field.getAnnotation(org.apache.uima.fit.descriptor.ConfigurationParameter.class); String parameterName = annotation.name();
public void applyAutoOverrides(Object aObject) { for (Field field : ReflectionUtil.getFields(aObject)) { if (ConfigurationParameterFactory.isConfigurationParameterField(field)) { String parameterName = ConfigurationParameterFactory .getConfigurationParameterName(field); // Check if there is an auto-override for this parameter String property = autoOverrides.get(parameterName); if (property != null) { try { Object value = FieldUtils.readField(field, aObject, true); setOverride(property, value != null ? value.toString() : null); } catch (IllegalAccessException e) { throw new IllegalStateException(e); } } } } }
if (isConfigurationParameterField(field)) { org.apache.uima.fit.descriptor.ConfigurationParameter annotation = ReflectionUtil .getAnnotation(field, org.apache.uima.fit.descriptor.ConfigurationParameter.class);
/** * A factory method for creating a ConfigurationParameter from a given field definition * * @param field * the field to analyze * @return the configuration parameter. */ public static ConfigurationParameter createPrimitiveParameter(Field field) { if (isConfigurationParameterField(field)) { org.apache.uima.fit.descriptor.ConfigurationParameter annotation = ReflectionUtil .getAnnotation(field, org.apache.uima.fit.descriptor.ConfigurationParameter.class); String name = getConfigurationParameterName(field); boolean multiValued = isMultiValued(field); String parameterType = getConfigurationParameterType(field); return createPrimitiveParameter(name, parameterType, annotation.description(), multiValued, annotation.mandatory()); } else { throw new IllegalArgumentException("field is not annotated with annotation of type " + org.apache.uima.fit.descriptor.ConfigurationParameter.class.getName()); } }
if (ConfigurationParameterFactory.isConfigurationParameterField(field)) { org.apache.uima.fit.descriptor.ConfigurationParameter annotation = ReflectionUtil .getAnnotation(field, org.apache.uima.fit.descriptor.ConfigurationParameter.class);