Class FullyQualifiedTypeCheck
- All Implemented Interfaces:
com.puppycrawl.tools.checkstyle.api.Configurable,com.puppycrawl.tools.checkstyle.api.Contextualizable
A package name in the middle of a statement carries nothing the
import block does not already hold, while it lets two files of the
same package spell the very same type in two different ways. A body
that says final java.util.List<String> spans = new
java.util.ArrayList<>(cap) should import both types and say
final List<String> spans = new ArrayList<>(cap) instead.
It is wrong for the reason the java.lang. prefix is wrong,
which UnnecessaryJavaLangCheck reports on its own and this
check therefore leaves alone.
The genuine disambiguation cases stay untouched. A file that
imports java.awt.List has no way to spell
java.util.List short, and neither has a class that extends a type of
its own simple name, the way MethodNameCheck extends the
Checkstyle class of that very name. In both of them the simple name
is taken by something else in the file and the qualified name is the
only name left. A name that two imports of the file bring in is taken
by both of them and stays alone as well.
A name counts as a type name when it starts with a capital letter,
has a small one after it, and stands behind at least two package
names, so that Foo.BAR and System.out.println stay
out of the way. Only plain names count, which is why the chain of
java.util.List.class ends at its third name and the one of
this.foo is empty.
- Since:
- 0.73.4
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean.OutputStreamOptions -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbeginTree(com.puppycrawl.tools.checkstyle.api.DetailAST root) int[]int[]int[]voidvisitToken(com.puppycrawl.tools.checkstyle.api.DetailAST ast) Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
clearViolations, destroy, finishTree, getFileContents, getFilePath, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
Constructor Details
-
FullyQualifiedTypeCheck
public FullyQualifiedTypeCheck()Default constructor.
-
-
Method Details
-
getDefaultTokens
public int[] getDefaultTokens()- Specified by:
getDefaultTokensin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-
getAcceptableTokens
public int[] getAcceptableTokens()- Specified by:
getAcceptableTokensin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-
getRequiredTokens
public int[] getRequiredTokens()- Specified by:
getRequiredTokensin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-
beginTree
public void beginTree(com.puppycrawl.tools.checkstyle.api.DetailAST root) - Overrides:
beginTreein classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-
visitToken
public void visitToken(com.puppycrawl.tools.checkstyle.api.DetailAST ast) - Overrides:
visitTokenin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-