Class IllegalImportCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.api.AutomaticBean
-
- com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
-
- com.puppycrawl.tools.checkstyle.api.AbstractCheck
-
- com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck
-
- All Implemented Interfaces:
Configurable,Contextualizable
public class IllegalImportCheck extends AbstractCheck
Checks for imports from a set of illegal packages. By default, the check rejects all
sun.*packages since programs that contain direct calls to thesun.*packages are not 100% Pure Java.To reject other packages, set property illegalPkgs to a comma-separated list of the illegal packages.
An example of how to configure the check is:
<module name="IllegalImport"/>
An example of how to configure the check so that it rejects packages
java.io.*andjava.sql.*is<module name="IllegalImport"> <property name="illegalPkgs" value="java.io, java.sql"/> </module> Compatible with Java 1.5 source.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String[]illegalClassesList of illegal classes.private java.util.List<java.util.regex.Pattern>illegalClassesRegexpsThe compiled regular expressions for classes.private java.lang.String[]illegalPkgsList of illegal packages.private java.util.List<java.util.regex.Pattern>illegalPkgsRegexpsThe compiled regular expressions for packages.static java.lang.StringMSG_KEYA key is pointing to the warning message text in "messages.properties" file.private booleanregexpWhether the packages or class names should be interpreted as regular expressions.
-
Constructor Summary
Constructors Constructor Description IllegalImportCheck()Creates a newIllegalImportCheckinstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int[]getAcceptableTokens()The configurable token set.int[]getDefaultTokens()Returns the default token a check is interested in.int[]getRequiredTokens()The tokens that this check must be registered for.private booleanisIllegalImport(java.lang.String importText)Checks if an import is from a package or class name that must not be used.private booleanisIllegalImportByPackagesAndClassNames(java.lang.String importText)Checks if an import is from a package or class name that must not be used.private booleanisIllegalImportByRegularExpressions(java.lang.String importText)Checks if an import matches one of the regular expressions for illegal packages or illegal class names.voidsetIllegalClasses(java.lang.String... from)Set the list of illegal classes.voidsetIllegalPkgs(java.lang.String... from)Set the list of illegal packages.voidsetRegexp(boolean regexp)Controls whether the packages or class names should be interpreted as regular expressions.voidvisitToken(DetailAST ast)Called to process a token.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
beginTree, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
-
-
-
-
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
-
illegalPkgsRegexps
private final java.util.List<java.util.regex.Pattern> illegalPkgsRegexps
The compiled regular expressions for packages.
-
illegalClassesRegexps
private final java.util.List<java.util.regex.Pattern> illegalClassesRegexps
The compiled regular expressions for classes.
-
illegalPkgs
private java.lang.String[] illegalPkgs
List of illegal packages.
-
illegalClasses
private java.lang.String[] illegalClasses
List of illegal classes.
-
regexp
private boolean regexp
Whether the packages or class names should be interpreted as regular expressions.
-
-
Method Detail
-
setIllegalPkgs
public final void setIllegalPkgs(java.lang.String... from)
Set the list of illegal packages.- Parameters:
from- array of illegal packages
-
setIllegalClasses
public void setIllegalClasses(java.lang.String... from)
Set the list of illegal classes.- Parameters:
from- array of illegal classes
-
setRegexp
public void setRegexp(boolean regexp)
Controls whether the packages or class names should be interpreted as regular expressions.- Parameters:
regexp- aBooleanvalue
-
getDefaultTokens
public int[] getDefaultTokens()
Description copied from class:AbstractCheckReturns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokensin classAbstractCheck- Returns:
- the default tokens
- See Also:
TokenTypes
-
getAcceptableTokens
public int[] getAcceptableTokens()
Description copied from class:AbstractCheckThe 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:
getAcceptableTokensin classAbstractCheck- Returns:
- the token set this check is designed for.
- See Also:
TokenTypes
-
getRequiredTokens
public int[] getRequiredTokens()
Description copied from class:AbstractCheckThe tokens that this check must be registered for.- Specified by:
getRequiredTokensin classAbstractCheck- Returns:
- the token set this must be registered for.
- See Also:
TokenTypes
-
visitToken
public void visitToken(DetailAST ast)
Description copied from class:AbstractCheckCalled to process a token.- Overrides:
visitTokenin classAbstractCheck- Parameters:
ast- the token to process
-
isIllegalImportByRegularExpressions
private boolean isIllegalImportByRegularExpressions(java.lang.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
importTextmatches one of the regular expressions for illegal packages or illegal class names
-
isIllegalImportByPackagesAndClassNames
private boolean isIllegalImportByPackagesAndClassNames(java.lang.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
importTextcontains an illegal package prefix or equals illegal class name
-
isIllegalImport
private boolean isIllegalImport(java.lang.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
importTextis illegal import
-
-