Class ParameterNumberCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public class ParameterNumberCheck
    extends AbstractCheck

    Checks the number of parameters that a method or constructor has. The default allowable number of parameters is 7. To change the number of allowable parameters, set property max. Allows to ignore number of parameters for methods with @Override annotation.

    An example of how to configure the check is:

     <module name="ParameterNumber"/>
     

    An example of how to configure the check to allow 10 parameters and ignoring parameters for methods with @Override annotation is:

     <module name="ParameterNumber">
        <property name="max" value="10"/>
        <property name="ignoreOverriddenMethods" value="true"/>
     </module>
     
    Java code that will be ignored:
     
    
      &#064;Override
      public void needsLotsOfParameters(int a,
          int b, int c, int d, int e, int f, int g, int h) {
          ...
      }
     
     
    • 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
      • OVERRIDE

        private static final java.lang.String OVERRIDE
        Override annotation name.
        See Also:
        Constant Field Values
      • CANONICAL_OVERRIDE

        private static final java.lang.String CANONICAL_OVERRIDE
        Canonical Override annotation name.
        See Also:
        Constant Field Values
      • DEFAULT_MAX_PARAMETERS

        private static final int DEFAULT_MAX_PARAMETERS
        Default maximum number of allowed parameters.
        See Also:
        Constant Field Values
      • max

        private int max
        The maximum number of allowed parameters.
      • ignoreOverriddenMethods

        private boolean ignoreOverriddenMethods
        Ignore overridden methods.
    • Constructor Detail

      • ParameterNumberCheck

        public ParameterNumberCheck()
    • Method Detail

      • setMax

        public void setMax​(int max)
        Sets the maximum number of allowed parameters.
        Parameters:
        max - the max allowed parameters
      • setIgnoreOverriddenMethods

        public void setIgnoreOverriddenMethods​(boolean ignoreOverriddenMethods)
        Ignore number of parameters for methods with @Override annotation.
        Parameters:
        ignoreOverriddenMethods - set ignore overridden methods
      • 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
      • shouldIgnoreNumberOfParameters

        private boolean shouldIgnoreNumberOfParameters​(DetailAST ast)
        Determine whether to ignore number of parameters for the method.
        Parameters:
        ast - the token to process
        Returns:
        true if this is overridden method and number of parameters should be ignored false otherwise