public static void injectFields(final Object object,
ClassMetadata metadata,
RuntimeContext runtimeContext) throws IOException,
PrivilegedActionException {
logger.trace("entry {} {} {}", new Object[]{object, metadata, runtimeContext});
List<Injectable> injectableFields = metadata.getInjectableFields();
logger.trace("injectableFields are {}", injectableFields);
for (Injectable injectableData : injectableFields) {
Object value = injectableData.getValue(runtimeContext);
Member member = injectableData.getMember();
logger.trace("Processing value {} and member {}", value, member);
if (member instanceof Field) {
injectField(object, value, (Field)member);
} else if (member instanceof Method) {
invokeMethod(object, value, (Method)member);
} else {
throw new WebApplicationException();
}
}
logger.trace("exit");
}