in src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java [39:74]
public AMQProperties(PluginProperties properties) {
this.message = properties.getSection(Message.class);
this.headers = new HashMap<>();
for (Section section : properties.getSections()) {
for (Field f : section.getClass().getFields()) {
if (f.isAnnotationPresent(MessageHeader.class)) {
MessageHeader mh = f.getAnnotation(MessageHeader.class);
try {
Object value = f.get(section);
if (value == null) {
continue;
}
switch (f.getType().getSimpleName()) {
case "String":
headers.put(mh.value(), value.toString());
break;
case "Integer":
headers.put(mh.value(), Integer.valueOf(value.toString()));
break;
case "Long":
headers.put(mh.value(), Long.valueOf(value.toString()));
break;
case "Boolean":
headers.put(mh.value(), Boolean.valueOf(value.toString()));
break;
default:
break;
}
} catch (IllegalAccessException | IllegalArgumentException ex) {
logger.atWarning().log(
"Cannot access field %s. Cause: %s", f.getName(), ex.getMessage());
}
}
}
}
}