private static boolean generatesPrivateConstructor(ClassTree classTree) { if (usesAnnotation(classTree, UTILITY_CLASS)) { return true; } SymbolMetadata metadata = classTree.symbol().metadata(); return GENERATE_CONSTRUCTOR.stream() .map(metadata::valuesForAnnotation) .filter(Objects::nonNull) .anyMatch(LombokFilter::generatesPrivateAccess); }
private static boolean generatesPrivateConstructor(ClassTree classTree) { if (usesAnnotation(classTree, UTILITY_CLASS)) { return true; } SymbolMetadata metadata = classTree.symbol().metadata(); return GENERATE_CONSTRUCTOR.stream() .map(metadata::valuesForAnnotation) .filter(Objects::nonNull) .anyMatch(LombokFilter::generatesPrivateAccess); }
private static boolean isClassTreeAnnotatedWith(ClassTree classTree, String... annotationName) { return Arrays.stream(annotationName).anyMatch(annotation -> classTree.symbol().metadata().isAnnotatedWith(annotation)); } }
@Override public void visitNode(Tree tree) { ClassTree clazzTree = (ClassTree) tree; SymbolMetadata clazzMeta = clazzTree.symbol().metadata(); if (isSpringComponent(clazzMeta) && !hasUniqueConstructor(clazzTree)) { clazzTree.members().stream().filter(v -> v.is(Kind.VARIABLE)) .map(m -> (VariableTree) m) .filter(v -> !v.symbol().isStatic()) .filter(v -> !isSpringInjectionAnnotated(v.symbol().metadata())) .filter(v -> !isCustomInjectionAnnotated(v.symbol().metadata())) .forEach(v -> reportIssue(v.simpleName(), "Annotate this member with \"@Autowired\", \"@Resource\", \"@Inject\", or \"@Value\", or remove it.")); } }
private static boolean usesAnnotation(ClassTree classTree, List<String> annotations) { SymbolMetadata metadata = classTree.symbol().metadata(); for (String annotation : annotations) { if (metadata.isAnnotatedWith(annotation)) { return true; } } return false; }
@Override public void visitNode(Tree tree) { ClassTree clazzTree = (ClassTree) tree; SymbolMetadata clazzMeta = clazzTree.symbol().metadata(); if (isSpringComponent(clazzMeta) && clazzMeta.isAnnotatedWith(SCOPE_ANNOTATION_FQN) && !isScopeSingleton(clazzMeta)) { checkScopeAnnotation(clazzTree); } }
private static boolean isAnnotationRepeatable(ExpressionTree expressionTree) { return expressionTree.symbolType().symbol().metadata().isAnnotatedWith("java.lang.annotation.Repeatable"); }
private static boolean isAnnotated(ClassTree tree) { return tree.symbol().metadata().isAnnotatedWith("java.lang.FunctionalInterface"); }
private static boolean isSpringWebHandler(AnnotationTree annotationTree) { Type annotationType = annotationTree.annotationType().symbolType(); return annotationType.is(REQUEST_MAPPING_ANNOTATION) || annotationType.symbol().metadata().isAnnotatedWith(REQUEST_MAPPING_ANNOTATION); } }
private boolean isNotRuntimeAnnotation(Type symbolType) { List<SymbolMetadata.AnnotationValue> valuesFor = symbolType.symbol().metadata().valuesForAnnotation("java.lang.annotation.Retention"); // default policy is CLASS if (valuesFor == null) { return true; } String retentionValue = getRetentionValue(valuesFor.get(0).value()); return !"RUNTIME".equals(retentionValue); }
private static boolean isDefaultConstructorForJpa(MethodTree methodTree) { if (!methodTree.block().body().isEmpty()) { // Constructor does something. return false; } SymbolMetadata symbolMetadata = ((ClassTree) methodTree.parent()).symbol().metadata(); return Stream.of(JPA_ANNOTATIONS).anyMatch(symbolMetadata::isAnnotatedWith); }
private static boolean isSpringWebHandler(AnnotationTree annotationTree) { Type annotationType = annotationTree.annotationType().symbolType(); return annotationType.is(REQUEST_MAPPING_ANNOTATION) || annotationType.symbol().metadata().isAnnotatedWith(REQUEST_MAPPING_ANNOTATION); } }
private static boolean isPersistentEntity(VariableTree variableTree) { return ENTITY_ANNOTATIONS.stream().anyMatch(variableTree.type().symbolType().symbol().metadata()::isAnnotatedWith); } }
@Override public void visitClass(ClassTree tree) { // No anonymous class, no visit of new class trees. visitNode(tree, tree.simpleName(), tree.symbol().metadata()); super.visitClass(tree); classTrees.pop(); currentParents.pop(); }
private static boolean isNotRuntimeAnnotation(Type symbolType) { List<SymbolMetadata.AnnotationValue> valuesFor = symbolType.symbol().metadata().valuesForAnnotation("java.lang.annotation.Retention"); // default policy is CLASS if (valuesFor == null) { return true; } String retentionValue = getRetentionValue(valuesFor.get(0).value()); return !"RUNTIME".equals(retentionValue); }
@Override public void visitClass(ClassTree tree) { // No anonymous class, no visit of new class trees. visitNode(tree, tree.simpleName(), tree.symbol().metadata()); super.visitClass(tree); classTrees.pop(); currentParents.pop(); }
private static boolean isDefaultConstructorForJpa(MethodTree methodTree) { if (!methodTree.block().body().isEmpty()) { // Constructor does something. return false; } SymbolMetadata symbolMetadata = ((ClassTree) methodTree.parent()).symbol().metadata(); return Stream.of(JPA_ANNOTATIONS).anyMatch(symbolMetadata::isAnnotatedWith); }
@Override public void visitNode(Tree tree) { ClassTree clazzTree = (ClassTree) tree; SymbolMetadata clazzMeta = clazzTree.symbol().metadata(); if (isSpringComponent(clazzMeta) && clazzMeta.isAnnotatedWith(SCOPE_ANNOTATION_FQN) && !isScopeSingleton(clazzMeta)) { checkScopeAnnotation(clazzTree); } }
private static boolean usesAnnotation(ClassTree classTree, List<String> annotations) { SymbolMetadata metadata = classTree.symbol().metadata(); for (String annotation : annotations) { if (metadata.isAnnotatedWith(annotation)) { return true; } } return false; }
private static boolean isNotRuntimeAnnotation(Type symbolType) { List<SymbolMetadata.AnnotationValue> valuesFor = symbolType.symbol().metadata().valuesForAnnotation("java.lang.annotation.Retention"); // default policy is CLASS if (valuesFor == null) { return true; } String retentionValue = getRetentionValue(valuesFor.get(0).value()); return !"RUNTIME".equals(retentionValue); }