public class AvoidEscapedUnicodeCharactersCheck extends AbstractCheck
Restricts using Unicode escapes (such as \u221e). It is possible to allow using escapes for non-printable, control characters. Also, this check can be configured to allow using escapes if trail comment is present. By the option it is possible to allow using escapes if literal contains only them.
allowEscapesForControlCharacters - Allow use escapes for
non-printable, control characters.
Type is boolean.
Default value is false.
allowByTailComment - Allow use escapes if trail comment is present.
Type is boolean.
Default value is false.
allowIfAllCharactersEscaped - Allow if all characters in literal are escaped.
Type is boolean.
Default value is false.
allowNonPrintableEscapes - Allow use escapes for
non-printable, whitespace characters.
Type is boolean.
Default value is false.
To configure the check:
<module name="AvoidEscapedUnicodeCharacters"/>
Examples of using Unicode:
String unitAbbrev = "μs"; // OK, perfectly clear even without a comment.
String unitAbbrev = "\u03bcs";// violation, the reader has no idea what this is.
return '\ufeff' + content; // OK, an example of non-printable,
// control characters (byte order mark).
An example of how to configure the check to allow using escapes for non-printable, control characters:
<module name="AvoidEscapedUnicodeCharacters"> <property name="allowEscapesForControlCharacters" value="true"/> </module>
Example of using escapes for non-printable, control characters:
String unitAbbrev = "μs"; // OK, a normal String String unitAbbrev = "\u03bcs"; // violation, "\u03bcs" is a printable character. return '\ufeff' + content; // OK, non-printable control character.
An example of how to configure the check to allow using escapes if trail comment is present:
<module name="AvoidEscapedUnicodeCharacters"> <property name="allowByTailComment" value="true"/> </module>
Example of using escapes if trail comment is present:
String unitAbbrev = "μs"; // OK, a normal String String unitAbbrev = "\u03bcs"; // OK, Greek letter mu, "s" return '\ufeff' + content; // -----^--------------------- violation, comment is not used within same line.
An example of how to configure the check to allow if all characters in literal are escaped.
<module name="AvoidEscapedUnicodeCharacters"> <property name="allowIfAllCharactersEscaped" value="true"/> </module>
Example of using escapes if all characters in literal are escaped:
String unitAbbrev = "μs"; // OK, a normal String
String unitAbbrev = "\u03bcs"; // violation, not all characters are escaped ('s').
String unitAbbrev = "\u03bc\u03bc\u03bc"; // OK
String unitAbbrev = "\u03bc\u03bcs";// violation, not all characters are escaped ('s').
return '\ufeff' + content; // OK, all control characters are escaped
An example of how to configure the check to allow using escapes for non-printable whitespace characters:
<module name="AvoidEscapedUnicodeCharacters"> <property name="allowNonPrintableEscapes" value="true"/> </module>
Example of using escapes for non-printable whitespace characters:
String unitAbbrev = "μs"; // OK, a normal String String unitAbbrev1 = "\u03bcs"; // violation, printable escape character. String unitAbbrev2 = "\u03bc\u03bc\u03bc"; // violation, printable escape character. String unitAbbrev3 = "\u03bc\u03bcs";// violation, printable escape character. return '\ufeff' + content; // OK, non-printable escape character.
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
forbid.escaped.unicode.char
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
MSG_KEY
A key is pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
AvoidEscapedUnicodeCharactersCheck() |
| Modifier and Type | Method and Description |
|---|---|
void |
beginTree(DetailAST rootAST)
Called before the starting to process 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 |
setAllowByTailComment(boolean allow)
Setter to allow use escapes if trail comment is present.
|
void |
setAllowEscapesForControlCharacters(boolean allow)
Setter to allow use escapes for non-printable, control characters.
|
void |
setAllowIfAllCharactersEscaped(boolean allow)
Setter to allow if all characters in literal are escaped.
|
void |
setAllowNonPrintableEscapes(boolean allow)
Setter to allow use escapes for non-printable, whitespace characters.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
clearViolations, destroy, finishTree, getFileContents, getLine, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic static final java.lang.String MSG_KEY
public AvoidEscapedUnicodeCharactersCheck()
public final void setAllowEscapesForControlCharacters(boolean allow)
allow - user's value.public final void setAllowByTailComment(boolean allow)
allow - user's value.public final void setAllowIfAllCharactersEscaped(boolean allow)
allow - user's value.public final void setAllowNonPrintableEscapes(boolean allow)
allow - user's value.public int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic void beginTree(DetailAST rootAST)
AbstractCheckbeginTree in class AbstractCheckrootAST - the root of the treepublic void visitToken(DetailAST ast)
AbstractCheckvisitToken in class AbstractCheckast - the token to processCopyright © 2001-2021. All Rights Reserved.