private static boolean isPrivateStaticFinal(ModifiersTree tree) { return ModifiersUtils.hasModifier(tree, Modifier.PRIVATE) && ModifiersUtils.hasModifier(tree, Modifier.STATIC) && ModifiersUtils.hasModifier(tree, Modifier.FINAL); }
public static boolean hasModifier(ModifiersTree modifiers, Modifier expectedModifier) { return findModifier(modifiers, expectedModifier).isPresent(); }
@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 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."); } }
@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 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."); } }
@Override protected boolean isFieldModifierConcernedByRule(ModifiersTree modifier) { return !ModifiersUtils.hasModifier(modifier, Modifier.STATIC); }
@CheckForNull public static ModifierKeywordTree getModifier(ModifiersTree modifiers, Modifier expectedModifier) { return findModifier(modifiers, expectedModifier).orElse(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; }
@Override protected boolean isFieldModifierConcernedByRule(ModifiersTree modifier) { return ModifiersUtils.hasModifier(modifier, Modifier.STATIC) && !ModifiersUtils.hasModifier(modifier, Modifier.FINAL); }
@CheckForNull public static ModifierKeywordTree getModifier(ModifiersTree modifiers, Modifier expectedModifier) { return findModifier(modifiers, expectedModifier).orElse(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 static boolean isNotStaticOrFinal(ModifiersTree modifiersTree) { return !ModifiersUtils.hasModifier(modifiersTree, Modifier.STATIC) && !ModifiersUtils.hasModifier(modifiersTree, Modifier.FINAL); }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } if (tree.is(METHOD, CONSTRUCTOR)) { MethodTree methodTree = (MethodTree) tree; int initialCounter = findModifier(methodTree.modifiers(), SYNCHRONIZED).map(m -> 1).orElse(0); synchronizedStack.push(new Counter(initialCounter)); findWaitInvocation(methodTree); } }
@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); } } }
private static boolean isPrivateStaticFinal(ModifiersTree tree) { return ModifiersUtils.hasModifier(tree, Modifier.PRIVATE) && ModifiersUtils.hasModifier(tree, Modifier.STATIC) && ModifiersUtils.hasModifier(tree, Modifier.FINAL); }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } if (tree.is(METHOD, CONSTRUCTOR)) { MethodTree methodTree = (MethodTree) tree; int initialCounter = findModifier(methodTree.modifiers(), SYNCHRONIZED).map(m -> 1).orElse(0); synchronizedStack.push(new Counter(initialCounter)); findWaitInvocation(methodTree); } }
private void checkComplianceOnModifiersAndSymbol(ModifiersTree modifiers, Symbol symbol) { ModifierKeywordTree modifier = ModifiersUtils.getModifier(modifiers, Modifier.PROTECTED); if (modifier != null && !isVisibleForTesting(symbol)) { reportIssue(modifier.keyword(), MESSAGE); } }
private static boolean isNotStaticOrFinal(ModifiersTree modifiersTree) { return !ModifiersUtils.hasModifier(modifiersTree, Modifier.STATIC) && !ModifiersUtils.hasModifier(modifiersTree, Modifier.FINAL); }
@Override public void visitMethod(MethodTree tree) { findModifier(tree.modifiers(), SYNCHRONIZED) .ifPresent(s -> synchronizedKeywords.add(s.keyword())); super.visitMethod(tree); }