Class AllowlistWarningsGuard

  • All Implemented Interfaces:
    java.io.Serializable

    @GwtIncompatible("java.io, java.util.regex")
    public class AllowlistWarningsGuard
    extends WarningsGuard
    An extension of WarningsGuard that provides functionality to maintain a list of warnings (allowlist). It is subclasses' responsibility to decide what to do with the allowlist by implementing the level function. Warnings are defined by the name of the JS file and the first line of warnings description.
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected boolean containWarning​(java.lang.String formattedWarning)
      Determines whether a given warning is included in the allowlist.
      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 AllowlistWarningsGuard fromFile​(java.io.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> loadAllowlistedJsWarnings​(com.google.common.io.CharSource supplier)
      Loads legacy warnings list from the file.
      static java.util.Set<java.lang.String> loadAllowlistedJsWarnings​(java.io.File file)
      Loads legacy warnings list from the file.
      protected java.util.Set<java.lang.String> normalizeAllowlist​(java.util.Set<java.lang.String> allowlist)
      Loads legacy warnings list from the set of strings.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AllowlistWarningsGuard

        public AllowlistWarningsGuard()
      • AllowlistWarningsGuard

        public AllowlistWarningsGuard​(java.util.Set<java.lang.String> allowlist)
        This class depends on an input set that contains the allowlist. The format of each allowlist string is: <file-name>:<line-number>? <warning-description> # <optional-comment>
        Parameters:
        allowlist - The set of JS-warnings that are allowlisted. This is expected to have similar format as formatWarning(JSError).
    • Method Detail

      • normalizeAllowlist

        protected java.util.Set<java.lang.String> normalizeAllowlist​(java.util.Set<java.lang.String> allowlist)
        Loads legacy warnings list from the set of strings. During development line numbers are changed very often - we just cut them and compare without ones.
        Returns:
        known legacy warnings without line numbers.
      • level

        public CheckLevel level​(JSError error)
        Description copied from class: WarningsGuard
        Returns a new check level for a given error.

        `null` means that this guard does not know what to do with the error. `null` can be used it chain multiple guards; if current guard returns null, then the next in the chain should process it.

        Specified by:
        level in class WarningsGuard
        Parameters:
        error - a reported error.
        Returns:
        what level given error should have.
      • containWarning

        protected boolean containWarning​(java.lang.String formattedWarning)
        Determines whether a given warning is included in the allowlist.
        Parameters:
        formattedWarning - the warning formatted by formattedWarning
        Returns:
        whether the given warning is allowlisted or not.
      • getPriority

        public int getPriority()
        Description copied from class: WarningsGuard
        The priority in which warnings guards are applied. Lower means the guard will be applied sooner. Expressed on a scale of 1 to 100.
        Overrides:
        getPriority in class WarningsGuard
      • fromFile

        public static AllowlistWarningsGuard fromFile​(java.io.File file)
        Creates a warnings guard from a file.
      • loadAllowlistedJsWarnings

        public static java.util.Set<java.lang.String> loadAllowlistedJsWarnings​(java.io.File file)
        Loads legacy warnings list from the file.
        Returns:
        The lines of the file.
      • loadAllowlistedJsWarnings

        protected static java.util.Set<java.lang.String> loadAllowlistedJsWarnings​(com.google.common.io.CharSource supplier)
        Loads legacy warnings list from the file.
        Returns:
        The lines of the file.
      • formatWarning

        protected java.lang.String formatWarning​(JSError error)
        If subclasses want to modify the formatting, they should override #formatWarning(JSError, boolean), not this method.
      • formatWarning

        protected java.lang.String formatWarning​(JSError error,
                                                 boolean withMetaData)
        Parameters:
        withMetaData - If true, include metadata that's useful to humans This metadata won't be used for matching the warning.
      • getFirstLine

        public static java.lang.String getFirstLine​(java.lang.String warning)