@GwtIncompatible(value="java.io, java.util.regex") public class WhitelistWarningsGuard extends WarningsGuard
WarningsGuard
that provides functionality to maintain
a list of warnings (white-list). It is subclasses' responsibility to decide
what to do with the white-list by implementing the level
function.
Warnings are defined by the name of the JS file and the first line of
warnings description.Modifier and Type | Class and Description |
---|---|
class |
WhitelistWarningsGuard.WhitelistBuilder
Whitelist builder
|
WarningsGuard.Priority
Modifier and Type | Field and Description |
---|---|
private static Pattern |
LINE_NUMBER
Pattern to match line number in error descriptions.
|
private static com.google.common.base.Splitter |
LINE_SPLITTER |
private java.util.Set<java.lang.String> |
whitelist
The set of white-listed warnings, same format as
formatWarning . |
Constructor and Description |
---|
WhitelistWarningsGuard() |
WhitelistWarningsGuard(java.util.Set<java.lang.String> whitelist)
This class depends on an input set that contains the white-list.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
containWarning(java.lang.String formattedWarning)
Determines whether a given warning is included in the white-list.
|
protected java.lang.String |
formatWarning(JSError error)
If subclasses want to modify the formatting, they should override
#formatWarning(JSError, boolean), not this method.
|
protected java.lang.String |
formatWarning(JSError error,
boolean withMetaData) |
static WhitelistWarningsGuard |
fromFile(File file)
Creates a warnings guard from a file.
|
static java.lang.String |
getFirstLine(java.lang.String warning) |
int |
getPriority()
The priority in which warnings guards are applied.
|
CheckLevel |
level(JSError error)
Returns a new check level for a given error.
|
protected static java.util.Set<java.lang.String> |
loadWhitelistedJsWarnings(com.google.common.io.CharSource supplier)
Loads legacy warnings list from the file.
|
static java.util.Set<java.lang.String> |
loadWhitelistedJsWarnings(File file)
Loads legacy warnings list from the file.
|
(package private) static java.util.Set<java.lang.String> |
loadWhitelistedJsWarnings(java.io.Reader reader)
Loads legacy warnings list from the file.
|
protected java.util.Set<java.lang.String> |
normalizeWhitelist(java.util.Set<java.lang.String> whitelist)
Loads legacy warnings list from the set of strings.
|
disables, enables, makeNonStrict
private static final com.google.common.base.Splitter LINE_SPLITTER
private final java.util.Set<java.lang.String> whitelist
formatWarning
.private static final Pattern LINE_NUMBER
public WhitelistWarningsGuard()
public WhitelistWarningsGuard(java.util.Set<java.lang.String> whitelist)
<file-name>:<line-number>? <warning-description>
# <optional-comment>
whitelist
- The set of JS-warnings that are white-listed. This is
expected to have similar format as formatWarning(JSError)
.protected java.util.Set<java.lang.String> normalizeWhitelist(java.util.Set<java.lang.String> whitelist)
public CheckLevel level(JSError error)
WarningsGuard
level
in class WarningsGuard
error
- a reported error.protected boolean containWarning(java.lang.String formattedWarning)
formattedWarning
- the warning formatted by formatWarning
public int getPriority()
WarningsGuard
getPriority
in class WarningsGuard
public static WhitelistWarningsGuard fromFile(File file)
public static java.util.Set<java.lang.String> loadWhitelistedJsWarnings(File file)
protected static java.util.Set<java.lang.String> loadWhitelistedJsWarnings(com.google.common.io.CharSource supplier)
static java.util.Set<java.lang.String> loadWhitelistedJsWarnings(java.io.Reader reader) throws java.io.IOException
java.io.IOException
protected java.lang.String formatWarning(JSError error)
protected java.lang.String formatWarning(JSError error, boolean withMetaData)
withMetaData
- If true, include metadata that's useful to humans
This metadata won't be used for matching the warning.public static java.lang.String getFirstLine(java.lang.String warning)