private void checkRedundantModifier(ModifiersTree modifiersTree, Modifier modifier) { ModifierKeywordTree foundModifier = ModifiersUtils.getModifier(modifiersTree, modifier); if (foundModifier != null) { reportIssue(foundModifier, "\"" + modifier.toString().toLowerCase(Locale.US) + "\" is redundant in this context."); } }
private void checkRedundantModifier(ModifiersTree modifiersTree, Modifier modifier) { ModifierKeywordTree foundModifier = ModifiersUtils.getModifier(modifiersTree, modifier); if (foundModifier != null) { reportIssue(foundModifier, "\"" + modifier.toString().toLowerCase(Locale.US) + "\" is redundant in this context."); } }
private static ModifierKeywordTree isTransient(Tree tree) { if (tree.is(Tree.Kind.VARIABLE)) { VariableTree variable = (VariableTree) tree; return ModifiersUtils.getModifier(variable.modifiers(), Modifier.TRANSIENT); } return null; }
private static ModifierKeywordTree isTransient(Tree tree) { if (tree.is(Tree.Kind.VARIABLE)) { VariableTree variable = (VariableTree) tree; return ModifiersUtils.getModifier(variable.modifiers(), Modifier.TRANSIENT); } return null; }
private void checkComplianceOnModifiersAndSymbol(ModifiersTree modifiers, Symbol symbol) { ModifierKeywordTree modifier = ModifiersUtils.getModifier(modifiers, Modifier.PROTECTED); if (modifier != null && !isVisibleForTesting(symbol)) { reportIssue(modifier.keyword(), MESSAGE); } }
private void checkComplianceOnModifiersAndSymbol(ModifiersTree modifiers, Symbol symbol) { ModifierKeywordTree modifier = ModifiersUtils.getModifier(modifiers, Modifier.PROTECTED); if (modifier != null && !isVisibleForTesting(symbol)) { reportIssue(modifier.keyword(), MESSAGE); } }
@Override public void visitNode(Tree tree) { ClassTree classTree = (ClassTree) tree; ModifierKeywordTree staticKeyword = ModifiersUtils.getModifier(classTree.modifiers(), Modifier.STATIC); if (staticKeyword != null) { List<JavaFileScannerContext.Location> secondary = Collections.singletonList(new JavaFileScannerContext.Location("", classTree.declarationKeyword())); reportIssue(staticKeyword, "Remove this redundant \"static\" qualifier.", secondary, null); } } }
@Override public void visitNode(Tree tree) { ClassTree classTree = (ClassTree) tree; ModifierKeywordTree staticKeyword = ModifiersUtils.getModifier(classTree.modifiers(), Modifier.STATIC); if (staticKeyword != null) { List<JavaFileScannerContext.Location> secondary = Collections.singletonList(new JavaFileScannerContext.Location("", classTree.declarationKeyword())); reportIssue(staticKeyword, "Remove this redundant \"static\" qualifier.", secondary, null); } } }
@Override public void visitNode(Tree tree) { ((ClassTree) tree).members() .stream() .filter(m -> m.is(Tree.Kind.VARIABLE)) .map(m -> ((VariableTree) m)) .filter(v -> ModifiersUtils.hasModifier(v.modifiers(), Modifier.VOLATILE)) .filter(v -> !v.type().symbolType().isPrimitive()) .forEach(v -> reportIssue(ModifiersUtils.getModifier(v.modifiers(), Modifier.VOLATILE), v.type(), getMessage(v))); }
@Override public void visitNode(Tree tree) { ((ClassTree) tree).members() .stream() .filter(m -> m.is(Tree.Kind.VARIABLE)) .map(m -> ((VariableTree) m)) .filter(v -> ModifiersUtils.hasModifier(v.modifiers(), Modifier.VOLATILE)) .filter(v -> !v.type().symbolType().isPrimitive()) .forEach(v -> reportIssue(ModifiersUtils.getModifier(v.modifiers(), Modifier.VOLATILE), v.type(), getMessage(v))); }
private void checkMember(MethodTree member) { if (isReadObject(member)) { ModifierKeywordTree modifier = ModifiersUtils.getModifier(member.modifiers(), Modifier.SYNCHRONIZED); if (modifier != null) { reportIssue(modifier.keyword(), "Remove the \"synchronized\" keyword from this method."); } } }
private void checkMember(MethodTree member) { if (isReadObject(member)) { ModifierKeywordTree modifier = ModifiersUtils.getModifier(member.modifiers(), Modifier.SYNCHRONIZED); if (modifier != null) { reportIssue(modifier.keyword(), "Remove the \"synchronized\" keyword from this method."); } } }
@Override public void visitNode(Tree tree) { ClassTree enumTree = (ClassTree) tree; for (Tree member : enumTree.members()) { if (member.is(Tree.Kind.VARIABLE)) { VariableTree variableTree = (VariableTree) member; ModifiersTree modifiers = variableTree.modifiers(); ModifierKeywordTree publicModifier = ModifiersUtils.getModifier(modifiers, Modifier.PUBLIC); if (publicModifier != null && (isNotStaticOrFinal(variableTree.modifiers())|| isMutableFinalMember(variableTree))) { reportIssue(publicModifier, "Lower the visibility of this field."); } } else if (member.is(Tree.Kind.METHOD)) { MethodTree methodTree = (MethodTree) member; ModifierKeywordTree publicModifier = ModifiersUtils.getModifier(methodTree.modifiers(), Modifier.PUBLIC); if (publicModifier != null && isSetter(methodTree)) { reportIssue(publicModifier, "Lower the visibility of this setter or remove it altogether."); } } } }
@Override public void visitNode(Tree tree) { ClassTree enumTree = (ClassTree) tree; for (Tree member : enumTree.members()) { if (member.is(Tree.Kind.VARIABLE)) { VariableTree variableTree = (VariableTree) member; ModifiersTree modifiers = variableTree.modifiers(); ModifierKeywordTree publicModifier = ModifiersUtils.getModifier(modifiers, Modifier.PUBLIC); if (publicModifier != null && (isNotStaticOrFinal(variableTree.modifiers())|| isMutableFinalMember(variableTree))) { reportIssue(publicModifier, "Lower the visibility of this field."); } } else if (member.is(Tree.Kind.METHOD)) { MethodTree methodTree = (MethodTree) member; ModifierKeywordTree publicModifier = ModifiersUtils.getModifier(methodTree.modifiers(), Modifier.PUBLIC); if (publicModifier != null && isSetter(methodTree)) { reportIssue(publicModifier, "Lower the visibility of this setter or remove it altogether."); } } } }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } MethodTree methodTree = (MethodTree) tree; Symbol.TypeSymbol enclosingClass = methodTree.symbol().enclosingClass(); String className = enclosingClass.type().fullyQualifiedName(); MethodMatcher writeObjectMatcher = SerializableContract.writeObjectMatcher(className); if (writeObjectMatcher.matches(methodTree) && hasModifier(methodTree.modifiers(), SYNCHRONIZED)) { SynchronizationVisitor visitor = new SynchronizationVisitor(methodTree); enclosingClass.declaration().accept(visitor); if (!visitor.moreThanSingleLock) { reportIssue(ModifiersUtils.getModifier(methodTree.modifiers(), SYNCHRONIZED), "Remove this \"synchronized\" keyword."); } } }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } MethodTree methodTree = (MethodTree) tree; Symbol.TypeSymbol enclosingClass = methodTree.symbol().enclosingClass(); String className = enclosingClass.type().fullyQualifiedName(); MethodMatcher writeObjectMatcher = SerializableContract.writeObjectMatcher(className); if (writeObjectMatcher.matches(methodTree) && hasModifier(methodTree.modifiers(), SYNCHRONIZED)) { SynchronizationVisitor visitor = new SynchronizationVisitor(methodTree); enclosingClass.declaration().accept(visitor); if (!visitor.moreThanSingleLock) { reportIssue(ModifiersUtils.getModifier(methodTree.modifiers(), SYNCHRONIZED), "Remove this \"synchronized\" keyword."); } } }