EnumGeneratorComponent { @ExecuteBefore(RESOLVED) public void installDecorators( final Injector injector, @WithState(INITIALIZED) final TypeMapperComponent typeMappers, @WithState(INITIALIZED) final CodeGenerationComponent codeGen, @WithState(RESOLVED) final PropertyEditorComponent editors ) { typeMappers.install(String.class, StringToEnumTypeMapper::new); typeMappers.install(Integer.class, IntegerToEnumTypeMapper::new); codeGen.add( Table.class, StandardTranslatorKey.GENERATED_ENTITY, new GeneratedEntityDecorator(injector) ); editors.install( HasEnumConstantsProperty.class, HasEnumConstantsUtil.ENUM_CONSTANTS, CommaSeparatedStringEditor::new ); }  @ExecuteBefore(RESOLVED) void installDecorators(
        final Injector injector,
        @WithState(INITIALIZED) final TypeMapperComponent typeMappers,
        @WithState(INITIALIZED) final CodeGenerationComponent codeGen,
        @WithState(RESOLVED) final PropertyEditorComponent editors
    );  }
@Test void installDecorators() throws InstantiationException { final InjectorBuilder builder = Injector.builder(); EnumGeneratorComponent.include().injectables().forEach(builder::withComponent); builder.withComponent(EnumGeneratorComponent.class); final Injector injector = builder.build(); final TypeMapperComponent typeMapperComponent = injector.getOrThrow(TypeMapperComponent.class); final Set<Class<?>> typeMapperComponentClasses = typeMapperComponent.stream().map(Object::getClass).collect(toSet()); assertTrue(typeMapperComponentClasses.contains(StringToEnumTypeMapper.class)); assertTrue(typeMapperComponentClasses.contains(IntegerToEnumTypeMapper.class)); }