Class SafeUriAttributeParser

java.lang.Object
com.google.gwt.uibinder.attributeparsers.StrictAttributeParser
com.google.gwt.uibinder.attributeparsers.SafeUriAttributeParser
All Implemented Interfaces:
AttributeParser

public class SafeUriAttributeParser extends StrictAttributeParser
Parses SafeUri literals or references.

Simple String literals are passed through UriUtils.fromConstantString(String)

Accepts concatenated string expressions, mainly for compatibility with legacy <a href="{foo.bar}{baz.bang}"> abuses. Passes such nonsense through UriUtils.fromString(String)

  • Constructor Details

    • SafeUriAttributeParser

      SafeUriAttributeParser(StringAttributeParser stringParser, FieldReferenceConverter converter, JType safeUriType, JType stringType, com.google.gwt.uibinder.rebind.MortalLogger logger)
      Constructs an instance for particular use in html contexts, where {string.references} are acceptible.
    • SafeUriAttributeParser

      SafeUriAttributeParser(StringAttributeParser stringParser, FieldReferenceConverter converter, JType safeUriType, com.google.gwt.uibinder.rebind.MortalLogger logger)
      Constructs an instance for normal use, where String literals are okay but {string.references} are not.
  • Method Details

    • wrapUnsafeStringAndWarn

      public static String wrapUnsafeStringAndWarn(com.google.gwt.uibinder.rebind.MortalLogger logger, com.google.gwt.uibinder.rebind.XMLElement source, String expression)
    • parse

      public String parse(com.google.gwt.uibinder.rebind.XMLElement source, String value) throws UnableToCompleteException
      Description copied from class: StrictAttributeParser
      If the value holds a single field reference "{like.this}", converts it to a Java Expression.

      In any other case (e.g. more than one field reference), an UnableToCompleteException is thrown.

      Specified by:
      parse in interface AttributeParser
      Overrides:
      parse in class StrictAttributeParser
      Parameters:
      source - the source code the value came from, for error reporting purposes
      value - the attribute value to be parsed
      Returns:
      a valid Java expression
      Throws:
      UnableToCompleteException - on parse error