Class FinalParametersCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public class FinalParametersCheck
    extends AbstractCheck
    Check that method/constructor/catch/foreach parameters are final. The user can set the token set to METHOD_DEF, CONSTRUCTOR_DEF, LITERAL_CATCH, FOR_EACH_CLAUSE or any combination of these token types, to control the scope of this check. Default scope is both METHOD_DEF and CONSTRUCTOR_DEF.

    Check has an option ignorePrimitiveTypes which allows ignoring lack of final modifier at primitive data type parameter. Default value false.

    E.g.:

    private void foo(int x) { ... } //parameter is of primitive type

    • Field Detail

      • MSG_KEY

        public static final java.lang.String MSG_KEY
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
      • primitiveDataTypes

        private final java.util.Set<java.lang.Integer> primitiveDataTypes
      • ignorePrimitiveTypes

        private boolean ignorePrimitiveTypes
        Option to ignore primitive types as params.
    • Constructor Detail

      • FinalParametersCheck

        public FinalParametersCheck()
    • Method Detail

      • setIgnorePrimitiveTypes

        public void setIgnorePrimitiveTypes​(boolean ignorePrimitiveTypes)
        Sets ignoring primitive types as params.
        Parameters:
        ignorePrimitiveTypes - true or false.
      • getDefaultTokens

        public int[] getDefaultTokens()
        Description copied from class: AbstractCheck
        Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.
        Specified by:
        getDefaultTokens in class AbstractCheck
        Returns:
        the default tokens
        See Also:
        TokenTypes
      • getAcceptableTokens

        public int[] getAcceptableTokens()
        Description copied from class: AbstractCheck
        The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.
        Specified by:
        getAcceptableTokens in class AbstractCheck
        Returns:
        the token set this check is designed for.
        See Also:
        TokenTypes
      • getRequiredTokens

        public int[] getRequiredTokens()
        Description copied from class: AbstractCheck
        The tokens that this check must be registered for.
        Specified by:
        getRequiredTokens in class AbstractCheck
        Returns:
        the token set this must be registered for.
        See Also:
        TokenTypes
      • visitMethod

        private void visitMethod​(DetailAST method)
        Checks parameters of the method or ctor.
        Parameters:
        method - method or ctor to check.
      • visitCatch

        private void visitCatch​(DetailAST catchClause)
        Checks parameter of the catch block.
        Parameters:
        catchClause - catch block to check.
      • visitForEachClause

        private void visitForEachClause​(DetailAST forEachClause)
        Checks parameter of the for each clause.
        Parameters:
        forEachClause - for each clause to check.
      • checkParam

        private void checkParam​(DetailAST param)
        Checks if the given parameter is final.
        Parameters:
        param - parameter to check.
      • isIgnoredParam

        private boolean isIgnoredParam​(DetailAST paramDef)
        Checks for skip current param due to ignorePrimitiveTypes option.
        Parameters:
        paramDef - PARAMETER_DEF
        Returns:
        true if param has to be skipped.