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 (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.
    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 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 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 white-list. The format of each white-list string is: <file-name>:<line-number>? <warning-description> # <optional-comment>
        Parameters:
        allowlist - The set of JS-warnings that are white-listed. 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. OFF - suppress it, ERROR - report as error. null means that this guard does not know what to do with the error. Null is extremely helpful when you have a chain of 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 white-list.
        Parameters:
        formattedWarning - the warning formatted by formattedWarning
        Returns:
        whether the given warning is white-listed 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)