Interface Rule

    • Field Detail

      • VIOLATION_SUPPRESS_REGEX_DESCRIPTOR

        static final StringProperty VIOLATION_SUPPRESS_REGEX_DESCRIPTOR
        The property descriptor to universally suppress violations with messages matching a regular expression.
      • VIOLATION_SUPPRESS_XPATH_DESCRIPTOR

        static final StringProperty VIOLATION_SUPPRESS_XPATH_DESCRIPTOR
        Name of the property to universally suppress violations on nodes which match a given relative XPath expression.
    • Method Detail

      • getLanguage

        Language getLanguage()
        Get the Language of this Rule.
        Returns:
        the language
      • setLanguage

        void setLanguage​(Language language)
        Set the Language of this Rule.
        Parameters:
        language - the language
      • getMinimumLanguageVersion

        LanguageVersion getMinimumLanguageVersion()
        Get the minimum LanguageVersion to which this Rule applies. If this value is null it indicates there is no minimum bound.
        Returns:
        the minimum language version
      • setMinimumLanguageVersion

        void setMinimumLanguageVersion​(LanguageVersion minimumLanguageVersion)
        Set the minimum LanguageVersion to which this Rule applies.
        Parameters:
        minimumLanguageVersion - the minimum language version
      • getMaximumLanguageVersion

        LanguageVersion getMaximumLanguageVersion()
        Get the maximum LanguageVersion to which this Rule applies. If this value is null it indicates there is no maximum bound.
        Returns:
        the maximum language version
      • setMaximumLanguageVersion

        void setMaximumLanguageVersion​(LanguageVersion maximumLanguageVersion)
        Set the maximum LanguageVersion to which this Rule applies.
        Parameters:
        maximumLanguageVersion - the maximum language version
      • isDeprecated

        boolean isDeprecated()
        Gets whether this Rule is deprecated. A deprecated Rule is one which:
        • is scheduled for removal in a future version of PMD
        • or, has been removed and replaced with a non-functioning place-holder and will be completely removed in a future version of PMD
        • or, has been renamed/moved and the old name will be completely removed in a future version of PMD
        Returns:
        true if this rule is deprecated
      • setDeprecated

        void setDeprecated​(boolean deprecated)
        Sets whether this Rule is deprecated.
        Parameters:
        deprecated - whether this rule is deprecated
      • getName

        java.lang.String getName()
        Get the name of this Rule.
        Specified by:
        getName in interface PropertySource
        Returns:
        the name
      • setName

        void setName​(java.lang.String name)
        Set the name of this Rule.
        Parameters:
        name - the name
      • getSince

        java.lang.String getSince()
        Get the version of PMD in which this Rule was added. Return null if not applicable.
        Returns:
        version of PMD since when this rule was added
      • setSince

        void setSince​(java.lang.String since)
        Set the version of PMD in which this Rule was added.
        Parameters:
        since - the version of PMD since when this rule was added
      • getRuleClass

        java.lang.String getRuleClass()
        Get the implementation class of this Rule.
        Returns:
        the implementation class name of this rule.
      • setRuleClass

        void setRuleClass​(java.lang.String ruleClass)
        Set the class of this Rule.
        Parameters:
        ruleClass - the class name of this rule.
      • getRuleSetName

        java.lang.String getRuleSetName()
        Get the name of the RuleSet containing this Rule.
        Returns:
        the name of th ruleset containing this rule.
        See Also:
        RuleSet
      • setRuleSetName

        void setRuleSetName​(java.lang.String name)
        Set the name of the RuleSet containing this Rule.
        Parameters:
        name - the name of the ruleset containing this rule.
        See Also:
        RuleSet
      • getMessage

        java.lang.String getMessage()
        Get the message to show when this Rule identifies a violation.
        Returns:
        the message to show for a violation.
      • setMessage

        void setMessage​(java.lang.String message)
        Set the message to show when this Rule identifies a violation.
        Parameters:
        message - the message to show for a violation.
      • getDescription

        java.lang.String getDescription()
        Get the description of this Rule.
        Returns:
        the description
      • setDescription

        void setDescription​(java.lang.String description)
        Set the description of this Rule.
        Parameters:
        description - the description
      • getExamples

        java.util.List<java.lang.String> getExamples()
        Get the list of examples for this Rule.
        Returns:
        the list of examples for this rule.
      • addExample

        void addExample​(java.lang.String example)
        Add a single example for this Rule.
        Parameters:
        example - a single example to add
      • getExternalInfoUrl

        java.lang.String getExternalInfoUrl()
        Get a URL for external information about this Rule.
        Returns:
        the URL for external information about this rule.
      • setExternalInfoUrl

        void setExternalInfoUrl​(java.lang.String externalInfoUrl)
        Set a URL for external information about this Rule.
        Parameters:
        externalInfoUrl - the URL for external information about this rule.
      • getPriority

        RulePriority getPriority()
        Get the priority of this Rule.
        Returns:
        the priority
      • setPriority

        void setPriority​(RulePriority priority)
        Set the priority of this Rule.
        Parameters:
        priority - the priority
      • getParserOptions

        ParserOptions getParserOptions()
        Get the parser options for this Rule. Parser options are used to configure the Parser to create an AST in the form the Rule is expecting. Because ParserOptions are mutable, a Rule should return a new instance on each call.
        Returns:
        the parser options
      • setUsesDFA

        @Deprecated
        void setUsesDFA()
        Deprecated.
        Sets whether this Rule uses Data Flow Analysis.
      • setDfa

        @Deprecated
        void setDfa​(boolean isDfa)
        Deprecated.
        Sets whether this Rule uses Data Flow Analysis.
      • usesDFA

        @Deprecated
        boolean usesDFA()
        Deprecated.
        Gets whether this Rule uses Data Flow Analysis.
        Returns:
        true if Data Flow Analysis is used.
      • isDfa

        @Deprecated
        boolean isDfa()
        Deprecated.
        Optional AST processing stages will be reified in 7.0.0 to factorise common logic. This method and the similar methods will be removed.
        Gets whether this Rule uses Data Flow Analysis.
        Returns:
        true if Data Flow Analysis is used.
      • setUsesTypeResolution

        @Deprecated
        void setUsesTypeResolution()
        Deprecated.
        Sets whether this Rule uses Type Resolution.
      • setTypeResolution

        @Deprecated
        void setTypeResolution​(boolean usingTypeResolution)
        Deprecated.
        Sets whether this Rule uses Type Resolution.
      • usesTypeResolution

        @Deprecated
        boolean usesTypeResolution()
        Deprecated.
        Gets whether this Rule uses Type Resolution.
        Returns:
        true if Type Resolution is used.
      • isTypeResolution

        @Deprecated
        boolean isTypeResolution()
        Deprecated.
        Optional AST processing stages will be reified in 7.0.0 to factorise common logic. This method and the similar methods will be removed.
        Gets whether this Rule uses Type Resolution.
        Returns:
        true if Type Resolution is used.
      • setUsesMultifile

        @Deprecated
        void setUsesMultifile()
        Deprecated.
        Sets whether this Rule uses multi-file analysis.
      • setMultifile

        @Deprecated
        void setMultifile​(boolean multifile)
        Deprecated.
        Sets whether this Rule uses multi-file analysis.
      • usesMultifile

        @Deprecated
        boolean usesMultifile()
        Deprecated.
        Gets whether this Rule uses multi-file analysis.
        Returns:
        true if the multi file analysis is used.
      • isMultifile

        @Deprecated
        boolean isMultifile()
        Deprecated.
        Logic for multifile analysis is not implemented yet and probably won't be implemented this way. Will be removed in 7.0.0.
        Gets whether this Rule uses multi-file analysis.
        Returns:
        true if the multi file analysis is used.
      • usesRuleChain

        @Deprecated
        boolean usesRuleChain()
        Deprecated.
        USe isRuleChain() instead.
        Gets whether this Rule uses the RuleChain.
        Returns:
        true if RuleChain is used.
      • isRuleChain

        boolean isRuleChain()
        Gets whether this Rule uses the RuleChain.
        Returns:
        true if RuleChain is used.
      • getRuleChainVisits

        java.util.List<java.lang.String> getRuleChainVisits()
        Gets the collection of AST node names visited by the Rule on the RuleChain.
        Returns:
        the list of AST node names
      • addRuleChainVisit

        void addRuleChainVisit​(java.lang.Class<? extends Node> nodeClass)
        Adds an AST node by class to be visited by the Rule on the RuleChain.
        Parameters:
        nodeClass - the AST node to add to the RuleChain visit list
      • addRuleChainVisit

        void addRuleChainVisit​(java.lang.String astNodeName)
        Adds an AST node by name to be visited by the Rule on the RuleChain.
        Parameters:
        astNodeName - the AST node to add to the RuleChain visit list as string
      • start

        void start​(RuleContext ctx)
        Start processing. Called once, before apply() is first called.
        Parameters:
        ctx - the rule context
      • apply

        void apply​(java.util.List<? extends Node> nodes,
                   RuleContext ctx)
        Apply this rule to the given collection of nodes, using the given context.
        Parameters:
        nodes - the nodes
        ctx - the rule context
      • end

        void end​(RuleContext ctx)
        End processing. Called once, after apply() is last called.
        Parameters:
        ctx - the rule context
      • deepCopy

        Rule deepCopy()
        Creates a new copy of this rule.
        Returns:
        A new exact copy of this rule