Search in sources :

Example 1 with AccessModifierOption

use of com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption in project checkstyle by checkstyle.

the class JavadocMethodCheck method shouldCheck.

/**
 * Whether we should check this node.
 *
 * @param ast a given node.
 * @return whether we should check a given node.
 */
private boolean shouldCheck(final DetailAST ast) {
    final AccessModifierOption surroundingAccessModifier = CheckUtil.getSurroundingAccessModifier(ast);
    final AccessModifierOption accessModifier = CheckUtil.getAccessModifierFromModifiersToken(ast);
    return surroundingAccessModifier != null && Arrays.stream(accessModifiers).anyMatch(modifier -> modifier == surroundingAccessModifier) && Arrays.stream(accessModifiers).anyMatch(modifier -> modifier == accessModifier);
}
Also used : TextBlock(com.puppycrawl.tools.checkstyle.api.TextBlock) AccessModifierOption(com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption) Arrays(java.util.Arrays) FullIdent(com.puppycrawl.tools.checkstyle.api.FullIdent) FileContents(com.puppycrawl.tools.checkstyle.api.FileContents) Iterator(java.util.Iterator) ListIterator(java.util.ListIterator) AbstractCheck(com.puppycrawl.tools.checkstyle.api.AbstractCheck) CommonUtil(com.puppycrawl.tools.checkstyle.utils.CommonUtil) Set(java.util.Set) FileStatefulCheck(com.puppycrawl.tools.checkstyle.FileStatefulCheck) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) TokenTypes(com.puppycrawl.tools.checkstyle.api.TokenTypes) List(java.util.List) Matcher(java.util.regex.Matcher) AnnotationUtil(com.puppycrawl.tools.checkstyle.utils.AnnotationUtil) Pattern(java.util.regex.Pattern) DetailAST(com.puppycrawl.tools.checkstyle.api.DetailAST) Collections(java.util.Collections) CheckUtil(com.puppycrawl.tools.checkstyle.utils.CheckUtil) AccessModifierOption(com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption)

Example 2 with AccessModifierOption

use of com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption in project checkstyle by checkstyle.

the class CheckUtil method getAccessModifierFromModifiersToken.

/**
 * Returns the access modifier of the method/constructor at the specified AST. If
 * the method is in an interface or annotation block, the access modifier is assumed
 * to be public.
 *
 * @param ast the token of the method/constructor.
 * @return the access modifier of the method/constructor.
 */
public static AccessModifierOption getAccessModifierFromModifiersToken(DetailAST ast) {
    final DetailAST modsToken = ast.findFirstToken(TokenTypes.MODIFIERS);
    AccessModifierOption accessModifier = getAccessModifierFromModifiersTokenDirectly(modsToken);
    if (accessModifier == AccessModifierOption.PACKAGE) {
        if (ScopeUtil.isInEnumBlock(ast) && ast.getType() == TokenTypes.CTOR_DEF) {
            accessModifier = AccessModifierOption.PRIVATE;
        } else if (ScopeUtil.isInInterfaceOrAnnotationBlock(ast)) {
            accessModifier = AccessModifierOption.PUBLIC;
        }
    }
    return accessModifier;
}
Also used : DetailAST(com.puppycrawl.tools.checkstyle.api.DetailAST) AccessModifierOption(com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption)

Example 3 with AccessModifierOption

use of com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption in project checkstyle by checkstyle.

the class RecordComponentNumberCheck method visitToken.

@Override
public void visitToken(DetailAST ast) {
    final AccessModifierOption accessModifier = CheckUtil.getAccessModifierFromModifiersToken(ast);
    if (matchAccessModifiers(accessModifier)) {
        final DetailAST recordComponents = ast.findFirstToken(TokenTypes.RECORD_COMPONENTS);
        final int componentCount = countComponents(recordComponents);
        if (componentCount > max) {
            log(ast, MSG_KEY, componentCount, max);
        }
    }
}
Also used : DetailAST(com.puppycrawl.tools.checkstyle.api.DetailAST) AccessModifierOption(com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption)

Example 4 with AccessModifierOption

use of com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption in project checkstyle by checkstyle.

the class CheckUtilTest method testGetAccessModifierFromModifiersToken.

@Test
public void testGetAccessModifierFromModifiersToken() throws Exception {
    final DetailAST interfaceDef = getNodeFromFile(TokenTypes.INTERFACE_DEF);
    final AccessModifierOption modifierInterface = CheckUtil.getAccessModifierFromModifiersToken(interfaceDef.findFirstToken(TokenTypes.OBJBLOCK).findFirstToken(TokenTypes.METHOD_DEF));
    assertWithMessage("Invalid access modifier").that(modifierInterface).isEqualTo(AccessModifierOption.PUBLIC);
    final DetailAST privateVariable = getNodeFromFile(TokenTypes.VARIABLE_DEF);
    final AccessModifierOption modifierPrivate = CheckUtil.getAccessModifierFromModifiersToken(privateVariable);
    assertWithMessage("Invalid access modifier").that(modifierPrivate).isEqualTo(AccessModifierOption.PRIVATE);
    final DetailAST protectedVariable = privateVariable.getNextSibling();
    final AccessModifierOption modifierProtected = CheckUtil.getAccessModifierFromModifiersToken(protectedVariable);
    assertWithMessage("Invalid access modifier").that(modifierProtected).isEqualTo(AccessModifierOption.PROTECTED);
    final DetailAST publicVariable = protectedVariable.getNextSibling();
    final AccessModifierOption modifierPublic = CheckUtil.getAccessModifierFromModifiersToken(publicVariable);
    assertWithMessage("Invalid access modifier").that(modifierPublic).isEqualTo(AccessModifierOption.PUBLIC);
    final DetailAST packageVariable = publicVariable.getNextSibling();
    final AccessModifierOption modifierPackage = CheckUtil.getAccessModifierFromModifiersToken(packageVariable);
    assertWithMessage("Invalid access modifier").that(modifierPackage).isEqualTo(AccessModifierOption.PACKAGE);
}
Also used : DetailAST(com.puppycrawl.tools.checkstyle.api.DetailAST) AccessModifierOption(com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption) Test(org.junit.jupiter.api.Test)

Aggregations

DetailAST (com.puppycrawl.tools.checkstyle.api.DetailAST)4 AccessModifierOption (com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption)4 FileStatefulCheck (com.puppycrawl.tools.checkstyle.FileStatefulCheck)1 AbstractCheck (com.puppycrawl.tools.checkstyle.api.AbstractCheck)1 FileContents (com.puppycrawl.tools.checkstyle.api.FileContents)1 FullIdent (com.puppycrawl.tools.checkstyle.api.FullIdent)1 TextBlock (com.puppycrawl.tools.checkstyle.api.TextBlock)1 TokenTypes (com.puppycrawl.tools.checkstyle.api.TokenTypes)1 AnnotationUtil (com.puppycrawl.tools.checkstyle.utils.AnnotationUtil)1 CheckUtil (com.puppycrawl.tools.checkstyle.utils.CheckUtil)1 CommonUtil (com.puppycrawl.tools.checkstyle.utils.CommonUtil)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Collections (java.util.Collections)1 HashSet (java.util.HashSet)1 Iterator (java.util.Iterator)1 List (java.util.List)1 ListIterator (java.util.ListIterator)1 Set (java.util.Set)1 Matcher (java.util.regex.Matcher)1