public void compilationError(String template, Object... arguments) { methodInfo.compilationError(template, arguments); }
@Override public void compilationError(String message) { methodInfo.compilationError(message); }
@Override public void compilationError(String message) { methodInfo.compilationError(message); }
public void compilationError(String template, Object... arguments) { methodInfo.compilationError(template, arguments); }
public static <T> Optional<T> of(MethodInfo methodInfo, Constructor<T> constructor) { if (!methodInfo.hasModifierInfo(ModifierInfo.ABSTRACT)) { methodInfo.compilationError("@Query method must be abstract"); return Optional.empty(); } if (methodInfo.hasAccessInfo(AccessInfo.PRIVATE)) { methodInfo.compilationError("@Query must not be private"); return Optional.empty(); } SimpleTypeInfo returnTypeInfo = methodInfo.returnTypeInfo(); QueryReturnType returnType = QueryReturnType.of(returnTypeInfo); TypeInfo pojoTypeInfo = returnType.pojoTypeInfo(returnTypeInfo); if (!pojoTypeInfo.hasAnnotation(Pojo.class)) { methodInfo.compilationError("@Query must return a List of, an Optional of or an instance of a @Pojo."); return Optional.empty(); } T method = constructor.apply(methodInfo, returnType, pojoTypeInfo); return Optional.of(method); }
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); }
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 Optional<SetterMethod> of(OrmPojoInfo pojoInfo, MethodInfo methodInfo) { AccessInfo accessInfo = methodInfo.accessInfo(); if (AccessInfo.PRIVATE.equals(accessInfo)) { methodInfo.compilationError("@Setter method must not be private."); return Optional.empty(); methodInfo.compilationError("@Setter method must be abstract."); return Optional.empty(); methodInfo.compilationError("@Setter method must have parameters"); return Optional.empty(); ClassName superClassName = naming.superClass(); if (!returnTypeInfo.className().equals(superClassName)) { methodInfo.compilationError("@Setter method must return %s", superClassName.simpleName()); return Optional.empty();
private static Optional<CsvRecordMethod> of(MethodInfo methodInfo) { Optional<AnnotationInfo> maybeAt = methodInfo.annotationInfo(At.class); if (!maybeAt.isPresent()) { methodInfo.compilationError("@CsvRecord method must have an @At annotation."); return Optional.empty(); } CsvRecordMethod method = CsvRecordMethod.builder() .index(maybeAt.flatMap(ann -> ann.annotationValueInfo("value")) .get() .intValue()) .fieldName(methodInfo.fieldName()) .returnType(CsvRecordReturnType.of(methodInfo)) .build(); return Optional.of(method); }