package com.exmertec.dummie.generator.impl;

import com.exmertec.dummie.cache.DummyCache;
import com.exmertec.dummie.generator.FieldValueGenerator;

import java.lang.reflect.Field;

public class EnumFieldValueGenerator extends FieldValueGenerator {

    public EnumFieldValueGenerator() {
        super(Enum.class);
    }
    @Override
    public Object generate(DummyCache cache, Field field) {
        return generate(cache, field.getType(), field.getName());
    }

    @Override
    public Object generate(DummyCache cache, Class<?> fieldType, String fieldName) {
        Object[] enumConstants = fieldType.getEnumConstants();
        if (enumConstants.length > 0) {
            return enumConstants[0];
        }
        return null;
    }

    @Override
    public boolean isMatchType(Class<?> targetFieldType) {
        return super.isMatchType(targetFieldType.getSuperclass());
    }
}

@@ -38,16 +38,49 @@
 .impl;%0A%0A
+import java.lang.reflect.Field;%0A%0A
 import c
@@ -179,41 +179,8 @@
 r;%0A%0A
-import java.lang.reflect.Field;%0A%0A
 publ
@@ -831,26 +831,8 @@
 urn 
-super.isMatchType(
 targ
@@ -847,23 +847,15 @@
 ype.
-getSuperclass()
+isEnum(
 );%0A 

fix enum match type bug