Class RuleContext


  • public class RuleContext
    extends java.lang.Object
    The RuleContext provides access to Rule processing state. This information includes the following global information:
    • The Report to which Rule Violations are sent.
    • Named attributes.
    As well as the following source file specific information:
    • A File for the source file.
    • A String for the name of the source file.
    • The Language Version of the source file.
    It is required that all source file specific options be set between calls to difference source files. Failure to do so, may result in undefined behavior.
    • Constructor Summary

      Constructors 
      Constructor Description
      RuleContext()
      Default constructor.
      RuleContext​(RuleContext ruleContext)
      Constructor which shares attributes and report listeners with the given RuleContext.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object getAttribute​(java.lang.String name)
      Get an attribute value on the RuleContext.
      LanguageVersion getLanguageVersion()
      Get the LanguageVersion associated with the current source file.
      Report getReport()
      Get the Report to which Rule Violations are sent.
      java.io.File getSourceCodeFile()
      Get the File associated with the current source file.
      java.lang.String getSourceCodeFilename()
      Get the file name associated with the current source file.
      boolean isIgnoreExceptions()
      Gets the configuration whether to skip failing rules (true) or whether to throw a a RuntimeException and abort the processing for the first failing rule.
      java.lang.Object removeAttribute​(java.lang.String name)
      Remove an attribute value on the RuleContext.
      boolean setAttribute​(java.lang.String name, java.lang.Object value)
      Set an attribute value on the RuleContext, if it does not already exist.
      void setIgnoreExceptions​(boolean ignoreExceptions)
      Configure whether exceptions during applying a rule should be ignored or not.
      void setLanguageVersion​(LanguageVersion languageVersion)
      Set the LanguageVersion associated with the current source file.
      void setReport​(Report report)
      Set the Report to which Rule Violations are sent.
      void setSourceCodeFile​(java.io.File sourceCodeFile)
      Set the File associated with the current source file.
      void setSourceCodeFilename​(java.lang.String filename)
      Set the file name associated with the current source file.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RuleContext

        public RuleContext()
        Default constructor.
      • RuleContext

        public RuleContext​(RuleContext ruleContext)
        Constructor which shares attributes and report listeners with the given RuleContext.
        Parameters:
        ruleContext - the context from which the values are shared
    • Method Detail

      • getReport

        public Report getReport()
        Get the Report to which Rule Violations are sent.
        Returns:
        The Report.
      • setReport

        public void setReport​(Report report)
        Set the Report to which Rule Violations are sent.
        Parameters:
        report - The Report.
      • getSourceCodeFile

        public java.io.File getSourceCodeFile()
        Get the File associated with the current source file.
        Returns:
        The File.
      • setSourceCodeFile

        public void setSourceCodeFile​(java.io.File sourceCodeFile)
        Set the File associated with the current source file. While this may be set to null, the exclude/include facilities will not work properly without a File.
        Parameters:
        sourceCodeFile - The File.
      • getSourceCodeFilename

        public java.lang.String getSourceCodeFilename()
        Get the file name associated with the current source file.
        Returns:
        The file name.
      • setSourceCodeFilename

        public void setSourceCodeFilename​(java.lang.String filename)
        Set the file name associated with the current source file.
        Parameters:
        filename - The file name.
      • getLanguageVersion

        public LanguageVersion getLanguageVersion()
        Get the LanguageVersion associated with the current source file.
        Returns:
        The LanguageVersion, null if unknown.
      • setLanguageVersion

        public void setLanguageVersion​(LanguageVersion languageVersion)
        Set the LanguageVersion associated with the current source file. This may be set to null to indicate the version is unknown and should be automatically determined.
        Parameters:
        languageVersion - The LanguageVersion.
      • setAttribute

        public boolean setAttribute​(java.lang.String name,
                                    java.lang.Object value)
        Set an attribute value on the RuleContext, if it does not already exist.

        Attributes can be shared between RuleContext instances. This operation is thread-safe.

        Attribute values should be modified directly via the reference provided. It is not necessary to call setAttribute(String, Object) to update an attribute value. Modifications made to the attribute value will automatically be seen by other threads. Because of this, you must ensure the attribute values are themselves thread safe.

        Parameters:
        name - The attribute name.
        value - The attribute value.
        Returns:
        true if the attribute was set, false otherwise.
        Throws:
        java.lang.IllegalArgumentException - if name or value are null
      • getAttribute

        public java.lang.Object getAttribute​(java.lang.String name)
        Get an attribute value on the RuleContext.

        Attributes can be shared between RuleContext instances. This operation is thread-safe.

        Attribute values should be modified directly via the reference provided. It is not necessary to call setAttribute(String, Object) to update an attribute value. Modifications made to the attribute value will automatically be seen by other threads. Because of this, you must ensure the attribute values are themselves thread safe.

        Parameters:
        name - The attribute name.
        Returns:
        The current attribute value, or null if the attribute does not exist.
      • removeAttribute

        public java.lang.Object removeAttribute​(java.lang.String name)
        Remove an attribute value on the RuleContext.

        Attributes can be shared between RuleContext instances. This operation is thread-safe.

        Attribute values should be modified directly via the reference provided. It is not necessary to call setAttribute(String, Object) to update an attribute value. Modifications made to the attribute value will automatically be seen by other threads. Because of this, you must ensure the attribute values are themselves thread safe.

        Parameters:
        name - The attribute name.
        Returns:
        The current attribute value, or null if the attribute does not exist.
      • setIgnoreExceptions

        public void setIgnoreExceptions​(boolean ignoreExceptions)
        Configure whether exceptions during applying a rule should be ignored or not. If set to true then such exceptions are logged as warnings and the processing is continued with the next rule - the failing rule is simply skipped. This is the default behavior.
        If set to false then the processing will be aborted with the exception. This is especially useful during unit tests, in order to not oversee any exceptions.
        Parameters:
        ignoreExceptions - if true simply skip failing rules (default).
      • isIgnoreExceptions

        public boolean isIgnoreExceptions()
        Gets the configuration whether to skip failing rules (true) or whether to throw a a RuntimeException and abort the processing for the first failing rule.
        Returns:
        true when failing rules are skipped, false otherwise.