Class ImportControlCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable, ExternalResourceHolder

    public class ImportControlCheck
    extends AbstractCheck
    implements ExternalResourceHolder
    Check that controls what can be imported in each package and file. Useful for ensuring that application layering is not violated. Ideas on how the check can be improved include support for:
    • Change the default policy that if a package being checked does not match any guards, then it is allowed. Currently defaults to disallowed.
    • Field Detail

      • MSG_MISSING_FILE

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

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

        public static final String MSG_DISALLOWED
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ImportControlCheck

        public ImportControlCheck()
    • Method Detail

      • 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
      • beginTree

        public void beginTree​(DetailAST rootAST)
        Description copied from class: AbstractCheck
        Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.
        Overrides:
        beginTree in class AbstractCheck
        Parameters:
        rootAST - the root of the tree
      • getExternalResourceLocations

        public Set<String> getExternalResourceLocations()
        Description copied from interface: ExternalResourceHolder
        Returns a set of external configuration resource locations which are used by the module. ATTENTION! If 'getExternalResourceLocations()' return null, there will be NullPointerException in Checker. Such behaviour will signal that your module (check or filter) is designed incorrectly. It make sense to return an empty set from 'getExternalResourceLocations()' only for composite modules like TreeWalker.
        Specified by:
        getExternalResourceLocations in interface ExternalResourceHolder
        Returns:
        a set of external configuration resource locations which are used by the module.
      • setFile

        public void setFile​(URI uri)
        Set the name for the file containing the import control configuration. It can also be a URL or resource in the classpath. It will cause the file to be loaded.
        Parameters:
        uri - the uri of the file to load.
        Throws:
        IllegalArgumentException - on error loading the file.
      • setPath

        public void setPath​(Pattern pattern)
        Set the file path pattern that this check applies to.
        Parameters:
        pattern - the file path regex this check should apply to.