private static <T extends BreweryKeyed> Map<BreweryKey, T> getFields(Class<T> tClass) {
try {
ImmutableMap.Builder<BreweryKey, T> outputBuilder = ImmutableMap.builder();
for (Field field : tClass.getDeclaredFields()) {
if (!Modifier.isStatic(field.getModifiers())) {
continue;
}
Object staticField = field.get(null);
if (tClass.isInstance(staticField)) {
T tInstance = tClass.cast(staticField);
outputBuilder.put(tInstance.key(), tInstance);
}
}
return outputBuilder.build();
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
private static <T extends BreweryKeyed> Map<BreweryKey, T> getFields(Class<T> tClass) {
try {
ImmutableMap.Builder<BreweryKey, T> outputBuilder = ImmutableMap.builder();
for (Field field : tClass.getDeclaredFields()) {
if (!Modifier.isStatic(field.getModifiers())) {
continue;
}
Object staticField = field.get(null);
if (tClass.isInstance(staticField)) {
T tInstance = tClass.cast(staticField);
outputBuilder.put(tInstance.key(), tInstance);
}
}
return outputBuilder.build();
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}