in src/java/org/apache/turbine/annotation/AnnotationProcessor.java [400:514]
private static void injectTurbineConfiguration(Object object, Configuration conf, Field field, TurbineConfiguration annotation) throws TurbineException
{
Class<?> type = field.getType();
String key = annotation.value();
try
{
if (Configuration.class.isAssignableFrom(type))
{
final Configuration injectConfiguration;
// Check for annotation value
if (StringUtils.isNotEmpty(key))
{
injectConfiguration = conf.subset(key);
}
else
{
injectConfiguration = conf;
}
log.debug("Injection of {} into object {}", injectConfiguration, object);
field.setAccessible(true);
field.set(object, injectConfiguration);
}
else if (conf.containsKey(key))
{
if ( String.class.isAssignableFrom( type ) )
{
String value = conf.getString(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.set(object, value);
}
else if ( Boolean.TYPE.isAssignableFrom( type ) )
{
boolean value = conf.getBoolean(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setBoolean(object, value);
}
else if ( Integer.TYPE.isAssignableFrom( type ) )
{
int value = conf.getInt(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setInt(object, value);
}
else if ( Long.TYPE.isAssignableFrom( type ) )
{
long value = conf.getLong(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setLong(object, value);
}
else if ( Short.TYPE.isAssignableFrom( type ) )
{
short value = conf.getShort(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setShort(object, value);
}
else if ( Long.TYPE.isAssignableFrom( type ) )
{
long value = conf.getLong(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setLong(object, value);
}
else if ( Float.TYPE.isAssignableFrom( type ) )
{
float value = conf.getFloat(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setFloat(object, value);
}
else if ( Double.TYPE.isAssignableFrom( type ) )
{
double value = conf.getDouble(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setDouble(object, value);
}
else if ( Byte.TYPE.isAssignableFrom( type ) )
{
byte value = conf.getByte(key);
log.debug("Injection of {} into object {}", value, object);
field.setAccessible(true);
field.setByte(object, value);
}
else if ( List.class.isAssignableFrom( type ) )
{
List<Object> values = conf.getList(key);
log.debug("Injection of {} into object {}", values, object);
field.setAccessible(true);
field.set(object, values);
}
}
}
catch (IllegalArgumentException | IllegalAccessException e)
{
throw new TurbineException("Could not inject configuration "
+ conf + " into object " + object, e);
}
}