Class Generator

java.lang.Object
com.google.gwt.core.ext.Generator
Direct Known Subclasses:
IncrementalGenerator

public abstract class Generator extends Object
Generates source code for subclasses during deferred binding requests. Subclasses must be thread-safe.

If annotated by @RunsLocal, a generator can minimize its impact on compilation speed. See Generator.RunsLocal for details.

Resource reading should be done through the ResourceOracle in the provided GeneratorContext (not via ClassLoader.getResource(), File, or URL) so that Generator Resource dependencies can be detected and used to facilitate fast incremental recompiles.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    An optional annotation indicating that a Generator can be run with local information during incremental compilation.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    escape(String unescaped)
    Escapes string content to be a valid string literal.
    static String
    escapeClassName(String unescapedString)
    Returns an escaped version of a String that is valid as a Java class name.
    Illegal characters become "_" + the character integer padded to 5 digits like "_01234".
    abstract String
    generate(TreeLogger logger, GeneratorContext context, String typeName)
    Generate a default constructible subclass of the requested type.

    Methods inherited from class java.lang.Object

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

    • Generator

      public Generator()
  • Method Details

    • escape

      public static String escape(String unescaped)
      Escapes string content to be a valid string literal.
      Returns:
      an escaped version of unescaped, suitable for being enclosed in double quotes in Java source
    • escapeClassName

      public static String escapeClassName(String unescapedString)
      Returns an escaped version of a String that is valid as a Java class name.
      Illegal characters become "_" + the character integer padded to 5 digits like "_01234". The padding prevents collisions like the following "_" + "123" + "4" = "_" + "1234". The "_" escape character is escaped to "__".
    • generate

      public abstract String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException
      Generate a default constructible subclass of the requested type. The generator throws UnableToCompleteException if for any reason it cannot provide a substitute class
      Returns:
      the name of a subclass to substitute for the requested class, or return null to cause the requested type itself to be used
      Throws:
      UnableToCompleteException