@Override
    public TypeDefinition build(
            ProcessingEnvironment processingEnv, DeclaredType type, Map<String, TypeDefinition> typeCache) {
        TypeDefinition typeDefinition = new TypeDefinition(type.toString());
        getDeclaredFields(type, FieldUtils::isEnumMemberField).stream()
                .map(Element::getSimpleName)
                .map(Name::toString)
                .forEach(typeDefinition.getEnums()::add);
        return typeDefinition;
    }
@Test
    void testBuild() {
        TypeElement typeElement = getType(Color.class);
        Map<String, TypeDefinition> typeCache = new HashMap<>();
        TypeDefinition typeDefinition = TypeDefinitionBuilder.build(processingEnv, typeElement, typeCache);
        assertEquals(Color.class.getName(), typeDefinition.getType());
        assertEquals(asList("RED", "YELLOW", "BLUE"), typeDefinition.getEnums());
        //        assertEquals(typeDefinition.getTypeBuilderName(), builder.getClass().getName());
    }