Class IllegalImportCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public class IllegalImportCheck
    extends AbstractCheck

    Checks for imports from a set of illegal packages.

    Note: By default, the check rejects all sun.* packages since programs that contain direct calls to the sun.* packages are "not guaranteed to work on all Java-compatible platforms". To reject other packages, set property illegalPkgs to a list of the illegal packages.

    • Property illegalClasses - Specify class names to reject, if regexp property is not set, checks if import equals class name. If regexp property is set, then list of class names will be interpreted as regular expressions. Note, all properties for match will be used. Type is java.lang.String[]. Default value is "".
    • Property illegalPkgs - Specify packages to reject, if regexp property is not set, checks if import is the part of package. If regexp property is set, then list of packages will be interpreted as regular expressions. Note, all properties for match will be used. Type is java.lang.String[]. Default value is sun.
    • Property regexp - Control whether the illegalPkgs and illegalClasses should be interpreted as regular expressions. Type is boolean. Default value is false.

    Parent is com.puppycrawl.tools.checkstyle.TreeWalker

    Violation Message Keys:

    • import.illegal
    Since:
    3.0
    • Field Detail

      • illegalPkgs

        private String[] illegalPkgs
        Specify packages to reject, if regexp property is not set, checks if import is the part of package. If regexp property is set, then list of packages will be interpreted as regular expressions. Note, all properties for match will be used.
      • illegalClasses

        private String[] illegalClasses
        Specify class names to reject, if regexp property is not set, checks if import equals class name. If regexp property is set, then list of class names will be interpreted as regular expressions. Note, all properties for match will be used.
      • regexp

        private boolean regexp
        Control whether the illegalPkgs and illegalClasses should be interpreted as regular expressions.
    • Constructor Detail

      • IllegalImportCheck

        public IllegalImportCheck()
        Creates a new IllegalImportCheck instance.
    • Method Detail

      • setIllegalPkgs

        public final void setIllegalPkgs​(String... from)
        Setter to specify packages to reject, if regexp property is not set, checks if import is the part of package. If regexp property is set, then list of packages will be interpreted as regular expressions. Note, all properties for match will be used.
        Parameters:
        from - illegal packages
        Since:
        3.0
      • setIllegalClasses

        public void setIllegalClasses​(String... from)
        Setter to specify class names to reject, if regexp property is not set, checks if import equals class name. If regexp property is set, then list of class names will be interpreted as regular expressions. Note, all properties for match will be used.
        Parameters:
        from - illegal classes
        Since:
        7.8
      • setRegexp

        public void setRegexp​(boolean regexp)
        Setter to control whether the illegalPkgs and illegalClasses should be interpreted as regular expressions.
        Parameters:
        regexp - a Boolean value
        Since:
        7.8
      • 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
      • isIllegalImportByRegularExpressions

        private boolean isIllegalImportByRegularExpressions​(String importText)
        Checks if an import matches one of the regular expressions for illegal packages or illegal class names.
        Parameters:
        importText - the argument of the import keyword
        Returns:
        if importText matches one of the regular expressions for illegal packages or illegal class names
      • isIllegalImportByPackagesAndClassNames

        private boolean isIllegalImportByPackagesAndClassNames​(String importText)
        Checks if an import is from a package or class name that must not be used.
        Parameters:
        importText - the argument of the import keyword
        Returns:
        if importText contains an illegal package prefix or equals illegal class name
      • isIllegalImport

        private boolean isIllegalImport​(String importText)
        Checks if an import is from a package or class name that must not be used.
        Parameters:
        importText - the argument of the import keyword
        Returns:
        if importText is illegal import