package org.springframework.roo.addon.finder; import org.apache.commons.lang3.Validate; import org.springframework.roo.classpath.details.FieldMetadata; import org.springframework.roo.model.JavaSymbolName; /** * Token which represents a field in an JPA Entity * * @author Ben Alex * @author Stefan Schmidt * @since 1.0 */ public class FieldToken implements Token, Comparable<FieldToken> { private final FieldMetadata field; private JavaSymbolName fieldName; /** * Constructor * * @param field */ public FieldToken(final FieldMetadata field) { Validate.notNull(field, "FieldMetadata required"); this.field = field; fieldName = field.getFieldName(); } public int compareTo(final FieldToken o) { final int l = o.getValue().length() - getValue().length(); return l == 0 ? -1 : l; } public FieldMetadata getField() { return field; } public JavaSymbolName getFieldName() { return fieldName; } public String getValue() { return field.getFieldName().getSymbolNameCapitalisedFirstLetter(); } public void setFieldName(final JavaSymbolName fieldName) { this.fieldName = fieldName; } }