@Override public String toString() { return field.toString(); }
@Override public int hashCode() { return field.toString().hashCode(); }
@Override public String signature() { String jandexSignature = field.toString(); int typeEndIdx = jandexSignature.indexOf(' '); if (typeEndIdx < 0) { return jandexSignature; } else { if (isEnumConstant()) { // Chop off field type completely for enum constant return jandexSignature.substring(typeEndIdx + 1); } else { // Chop off prefix of the FQ name of the field type return Pattern.compile(field.type().name().toString(), Pattern.LITERAL).matcher(jandexSignature).replaceFirst(Wrappers.simpleName(field.type().name())); } } }