package org.springframework.roo.classpath.customdata.tagkeys; import java.util.List; import org.springframework.roo.classpath.details.FieldMetadata; import org.springframework.roo.classpath.details.annotations.AnnotationMetadata; import org.springframework.roo.model.JavaSymbolName; import org.springframework.roo.model.JavaType; /** * {@link FieldMetadata}-specific implementation of * {@link IdentifiableAnnotatedJavaStructureCustomDataKey}. * * @author James Tyrrell * @since 1.1.3 */ public class FieldMetadataCustomDataKey extends IdentifiableAnnotatedJavaStructureCustomDataKey<FieldMetadata> { private String fieldInitializer; private JavaSymbolName fieldName; private JavaType fieldType; private String name; public FieldMetadataCustomDataKey(final Integer modifier, final List<AnnotationMetadata> annotations) { super(modifier, annotations); } public FieldMetadataCustomDataKey(final Integer modifier, final List<AnnotationMetadata> annotations, final JavaType fieldType, final JavaSymbolName fieldName, final String fieldInitializer) { super(modifier, annotations); this.fieldType = fieldType; this.fieldName = fieldName; this.fieldInitializer = fieldInitializer; } public FieldMetadataCustomDataKey(final String name) { super(null, null); this.name = name; } public String getFieldInitializer() { return fieldInitializer; } public JavaSymbolName getFieldName() { return fieldName; } public JavaType getFieldType() { return fieldType; } @Override public boolean meets(final FieldMetadata field) { // TODO: Add in validation logic for fieldType, fieldName, // fieldInitializer return super.meets(field); } public String name() { return name; } @Override public String toString() { return name; } }