@Override public String apply(AnnotationInfo input) { return input.simpleName(); }
private static Optional<InvalidateMethod> of1(TypeInfo typeInfo, MethodInfo method, AnnotationInfo annotation) { String annotationName = annotation.simpleName(); if (method.hasModifierInfo(ModifierInfo.FINAL)) { method.compilationError("@%s method cannot be final", annotationName); return Optional.empty(); } if (method.hasAccessInfo(AccessInfo.PRIVATE)) { method.compilationError("@%s method cannot be private", annotationName); return Optional.empty(); } SimpleTypeInfo returnTypeInfo = method.returnTypeInfo(); boolean self = returnTypeInfo.equals(typeInfo.toSimpleTypeInfo()); if (!returnTypeInfo.equals(SimpleTypePrimitives.VOID) && !self) { method.compilationError("@%s method must return void or self", annotationName); return Optional.empty(); } InvalidateMethod invalidateMethod = new InvalidateMethod(method, annotation, self); return Optional.of(invalidateMethod); }
public static FieldMethod code(Property property) { AnnotationInfo fieldAnnotation = property.annotationInfoAnnotatedWith(FieldAnnotation.class).get(); String fieldAnnotationName = fieldAnnotation.simpleName(); switch (fieldAnnotationName) { case "CustomFormat": return CustomFormatMethod.code(property, fieldAnnotation); case "DecimalFormat": return DecimalFormatMethod.code(property, fieldAnnotation); case "Fill": return FillMethod.code(property, fieldAnnotation); case "Fixed": return FixedMethod.code(property, fieldAnnotation); case "FlatEnumFormat": return FlatEnumFormatMethod.code(property, fieldAnnotation); case "IntegerFormat": return IntegerFormatMethod.code(property, fieldAnnotation); case "LocalDateFormat": return LocalDateFormatMethod.code(property, fieldAnnotation); case "Text": return TextMethod.code(property, fieldAnnotation); default: throw new AssertionError(); } }