use of org.terasology.persistence.typeHandling.RegisterTypeHandler in project Terasology by MovingBlocks.
the class EnvironmentSwitchHandler method registerTypeHandlers.
@SuppressWarnings({ "rawtypes", "unchecked" })
private static void registerTypeHandlers(Context context, TypeSerializationLibrary library, ModuleEnvironment environment) {
for (Class<? extends TypeHandler> handler : environment.getSubtypesOf(TypeHandler.class)) {
RegisterTypeHandler register = handler.getAnnotation(RegisterTypeHandler.class);
if (register != null) {
Optional<Type> opt = GenericsUtil.getTypeParameterBindingForInheritedClass(handler, TypeHandler.class, 0);
if (opt.isPresent()) {
TypeHandler instance = InjectionHelper.createWithConstructorInjection(handler, context);
InjectionHelper.inject(instance, context);
library.add((Class) opt.get(), instance);
}
}
}
}
Aggregations