public static Optional<ModifierKeywordTree> findModifier(ModifiersTree modifiersTree, Modifier expectedModifier) { return modifiersTree.modifiers().stream() .filter(modifierKeywordTree -> modifierKeywordTree.modifier() == expectedModifier) .findAny(); } }
private boolean isNotStatic(VariableTree field) { for (Modifier modifier : field.modifiers().modifiers()) { if (modifier == Modifier.STATIC) { return false; } } return true; }
private void checkMemberModifier(ModifiersTree modifiers, Tree reportingTree) { if (modifiers.modifiers().contains(Modifier.PROTECTED)) { addIssue(reportingTree, "Remove this \"protected\" modifier."); } }
public static Optional<ModifierKeywordTree> findModifier(ModifiersTree modifiersTree, Modifier expectedModifier) { return modifiersTree.modifiers().stream() .filter(modifierKeywordTree -> modifierKeywordTree.modifier() == expectedModifier) .findAny(); } }
private boolean isAbstract(ClassTree tree) { for (Modifier modifier : tree.modifiers().modifiers()) { if (modifier == Modifier.ABSTRACT) { return true; } } return false; }
private static boolean hasModifier(ModifiersTree tree, Modifier expectedModifier) { for (Modifier modifier : tree.modifiers()) { if (modifier.equals(expectedModifier)) { return true; } } return false; }
private boolean hasModifier(VariableTree member, Modifier modifier) { return member.modifiers().modifiers().contains(modifier); } }
private boolean isNonStaticNonDefaultMethod(Tree memberTree) { boolean result = memberTree.is(Tree.Kind.METHOD); if (result) { MethodTree methodTree = (MethodTree) memberTree; List<Modifier> modifiers = methodTree.modifiers().modifiers(); result = !modifiers.contains(Modifier.STATIC) && !modifiers.contains(Modifier.DEFAULT); } return result; } }
private void checkRedundantModifier(ModifiersTree modifiersTree, Modifier modifier) { if (modifiersTree.modifiers().contains(modifier)) { addIssue(modifiersTree, "\"" + modifier.toString().toLowerCase() + "\" is redundant in this context."); } }
private boolean isTransient(Tree tree) { if (tree.is(Tree.Kind.VARIABLE)) { VariableTree variable = (VariableTree) tree; return variable.modifiers().modifiers().contains(Modifier.TRANSIENT); } return false; }
@CheckForNull public static ModifierKeywordTree getModifier(ModifiersTree modifiers, Modifier modifier) { for (ModifierKeywordTree modifierKeywordTree : modifiers.modifiers()) { if (modifier.equals(modifierKeywordTree.modifier())) { return modifierKeywordTree; } } return null; } }
public static boolean hasModifier(ModifiersTree modifiers, Modifier expectedModifier) { for (ModifierKeywordTree modifierKeywordTree : modifiers.modifiers()) { if (expectedModifier.equals(modifierKeywordTree.modifier())) { return true; } } return false; }
@Override public void visitNode(Tree tree) { ClassTree classTree = (ClassTree) tree; if (classTree.modifiers().modifiers().contains(Modifier.FINAL)) { for (Tree member : classTree.members()) { checkMember(member); } } }
private boolean isFinalObjectMethod(MethodTree methodTree) { MethodTreeImpl methodTreeImpl = (MethodTreeImpl) methodTree; return hasSemantic() && methodTree.modifiers().modifiers().contains(Modifier.FINAL) && isObjectMethod(methodTreeImpl); }
private boolean classHasProtectedMethod(ClassTree tree) { for(Tree member : tree.members()) { if(member.is(Tree.Kind.METHOD) && ((MethodTree) member).modifiers().modifiers().contains(Modifier.PROTECTED)) { return true; } } return false; }
@Override public void visitNode(Tree tree) { if (tree.is(Tree.Kind.METHOD_INVOCATION)) { super.visitNode(tree); } else if (tree.is(Tree.Kind.METHOD)) { withinSynchronizedBlock.push(((MethodTree) tree).modifiers().modifiers().contains(Modifier.SYNCHRONIZED)); } else if (tree.is(Tree.Kind.SYNCHRONIZED_STATEMENT)) { withinSynchronizedBlock.push(true); } }
private boolean isSerializableMethod(MethodTree methodTree) { boolean result = false; // FIXME detect methods based on type of arg and throws, not arity. if (methodTree.modifiers().modifiers().contains(Modifier.PRIVATE) && methodTree.parameters().size() == 1) { result |= "writeObject".equals(methodTree.simpleName().name()) && methodTree.throwsClauses().size() == 1; result |= "readObject".equals(methodTree.simpleName().name()) && methodTree.throwsClauses().size() == 2; } return result; }
public void checkIfUnused(VariableTree tree) { if (tree.modifiers().modifiers().contains(Modifier.PRIVATE) && !"serialVersionUID".equals(tree.simpleName().name())) { Symbol symbol = tree.symbol(); if (symbol.usages().size() == assignments.get(symbol).size() && !hasExcludedAnnotation(tree)) { addIssue(tree, "Remove this unused \"" + tree.simpleName() + "\" private field."); } } }
private int computeFlags(ModifiersTree modifiers, Tree tree) { int result = 0; if ((env.scope.owner.flags & Flags.INTERFACE) != 0) { result = computeFlagsForInterfaceMember(tree); } for (ModifierKeywordTree modifier : modifiers.modifiers()) { result |= Flags.flagForModifier(modifier.modifier()); } if(hasDeprecatedAnnotation(modifiers.annotations())) { result |= Flags.DEPRECATED; } return result; }
private int computeFlags(ModifiersTree modifiers, Tree tree) { int result = 0; if (Flags.isFlagged(env.scope.owner.flags, Flags.INTERFACE)) { result = computeFlagsForInterfaceMember(tree); } for (ModifierKeywordTree modifier : modifiers.modifiers()) { result |= Flags.flagForModifier(modifier.modifier()); } if(hasDeprecatedAnnotation(modifiers.annotations())) { result |= Flags.DEPRECATED; } return result; }