in src/main/java/com/twitter/nodes/Node.java [402:424]
private static Set getOptionalDependenciesForClass(Class<? extends Enum> enumClass) {
Set optionalEnumSet = OPTIONAL_DEP_MAP.get(enumClass);
if (optionalEnumSet == null) {
optionalEnumSet = EnumSet.noneOf(enumClass);
try {
for (Object item : enumClass.getEnumConstants()) {
Annotation[] annotations = enumClass.getField(item.toString()).getAnnotations();
if (annotations != null) {
for (Annotation anno : annotations) {
if (anno instanceof OptionalDep) {
optionalEnumSet.add(item);
}
}
}
}
OPTIONAL_DEP_MAP.put(enumClass, ImmutableSet.copyOf(optionalEnumSet));
} catch (Exception e) {
LOG.error(e, "Cannot get fields for enum class " + enumClass);
Throwables.propagate(e);
}
}
return ImmutableSet.copyOf(optionalEnumSet);
}