public final class PackageDeclarationCheck extends AbstractCheck
Ensures that a class has a package declaration, and (optionally) whether the package name matches the directory name for the source file.
Rationale: Classes that live in the null package cannot be imported. Many novice developers are not aware of this.
Packages provide logical namespace to classes and should be stored in the form of directory levels to provide physical grouping to your classes. These directories are added to the classpath so that your classes are visible to JVM when it runs the code.
matchDirectoryStructure
- Control whether to check for
directory and package name match.
Type is boolean
.
Default value is true
.
To configure the check:
<module name="PackageDeclaration"/>
Let us consider the class AnnotationLocationCheck which is in the directory /com/puppycrawl/tools/checkstyle/checks/annotations/
package com.puppycrawl.tools.checkstyle.checks; //Violation public class AnnotationLocationCheck extends AbstractCheck { //... }
Example of how the check works when matchDirectoryStructure option is set to false. Let us again consider the AnnotationLocationCheck class located at directory /com/puppycrawl/tools/checkstyle/checks/annotations/ along with the following setup,
<module name="PackageDeclaration"> <property name="matchDirectoryStructure" value="false"/> </module>
package com.puppycrawl.tools.checkstyle.checks; //No Violation public class AnnotationLocationCheck extends AbstractCheck { //... }
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
mismatch.package.directory
missing.package.declaration
AutomaticBean.OutputStreamOptions
Modifier and Type | Field and Description |
---|---|
static String |
MSG_KEY_MISMATCH
A key is pointing to the warning message text in "messages.properties"
file.
|
static String |
MSG_KEY_MISSING
A key is pointing to the warning message text in "messages.properties"
file.
|
Constructor and Description |
---|
PackageDeclarationCheck() |
Modifier and Type | Method and Description |
---|---|
void |
beginTree(DetailAST ast)
Called before the starting to process a tree.
|
void |
finishTree(DetailAST ast)
Called after finished processing a tree.
|
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.
|
void |
setMatchDirectoryStructure(boolean matchDirectoryStructure)
Setter to control whether to check for directory and package name match.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
clearMessages, destroy, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokens
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
configure, contextualize, getConfiguration, setupChild
public static final String MSG_KEY_MISSING
public static final String MSG_KEY_MISMATCH
public PackageDeclarationCheck()
public void setMatchDirectoryStructure(boolean matchDirectoryStructure)
matchDirectoryStructure
- the new value.public int[] getDefaultTokens()
AbstractCheck
getDefaultTokens
in class AbstractCheck
TokenTypes
public int[] getRequiredTokens()
AbstractCheck
getRequiredTokens
in class AbstractCheck
TokenTypes
public int[] getAcceptableTokens()
AbstractCheck
getAcceptableTokens
in class AbstractCheck
TokenTypes
public void beginTree(DetailAST ast)
AbstractCheck
beginTree
in class AbstractCheck
ast
- the root of the treepublic void finishTree(DetailAST ast)
AbstractCheck
finishTree
in class AbstractCheck
ast
- the root of the treepublic void visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processCopyright © 2001–2020. All rights reserved.