GWT 2.3.0

com.google.gwt.core.ext
Class GeneratorContextExtWrapper

java.lang.Object
  extended by com.google.gwt.core.ext.GeneratorContextExtWrapper
All Implemented Interfaces:
GeneratorContext, GeneratorContextExt

public class GeneratorContextExtWrapper
extends java.lang.Object
implements GeneratorContextExt

EXPERIMENTAL and subject to change. Do not use this in production code.

A wrapper to access a base GeneratorContext instance as a GeneratorContextExt instance. Methods from the GeneratorContext interface are passed through to the baseContext, while methods from the GeneratorContextExt interface are given default stub implementations.


Method Summary
 void commit(TreeLogger logger, java.io.PrintWriter pw)
          Commits source generation begun with GeneratorContext.tryCreate(TreeLogger, String, String).
 void commitArtifact(TreeLogger logger, Artifact<?> artifact)
          Add an Artifact to the ArtifactSet that will be presented to the Linker chain at the end of the compilation cycle.
 GeneratedResource commitResource(TreeLogger logger, java.io.OutputStream os)
          Commits resource generation begun with GeneratorContext.tryCreateResource(TreeLogger, String).
 com.google.gwt.dev.javac.rebind.CachedRebindResult getCachedGeneratorResult()
          Get cached result from a previous run of the current generator, if available.
 PropertyOracle getPropertyOracle()
          Gets the property oracle for the current generator context.
 com.google.gwt.dev.resource.ResourceOracle getResourcesOracle()
          Returns a resource oracle containing all resources that are mapped into the module's source (or super-source) paths.
 long getSourceLastModifiedTime(JClassType sourceType)
          Get source last modified time.
 TypeOracle getTypeOracle()
          Gets the type oracle for the current generator context.
 boolean isGeneratorResultCachingEnabled()
          Check whether generator result caching is currently enabled.
 boolean isProdMode()
          Returns true if generators are being run to produce code for a production compile.
static GeneratorContextExt newInstance(GeneratorContext baseContext)
          Get a new instance wrapped from a base GeneratorContext implementation.
 boolean reuseTypeFromCacheIfAvailable(java.lang.String typeName)
          Mark a type to be reused from the generator result cache.
 java.io.PrintWriter tryCreate(TreeLogger logger, java.lang.String packageName, java.lang.String simpleName)
          Attempts to get a PrintWriter so that the caller can generate the source code for the named type.
 java.io.OutputStream tryCreateResource(TreeLogger logger, java.lang.String partialPath)
          Attempts to get an OutputStream so that the caller can write file contents into the named file underneath the compilation output directory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

newInstance

public static GeneratorContextExt newInstance(GeneratorContext baseContext)
Get a new instance wrapped from a base GeneratorContext implementation.


commit

public void commit(TreeLogger logger,
                   java.io.PrintWriter pw)
Description copied from interface: GeneratorContext
Commits source generation begun with GeneratorContext.tryCreate(TreeLogger, String, String).

Specified by:
commit in interface GeneratorContext

commitArtifact

public void commitArtifact(TreeLogger logger,
                           Artifact<?> artifact)
                    throws UnableToCompleteException
Description copied from interface: GeneratorContext
Add an Artifact to the ArtifactSet that will be presented to the Linker chain at the end of the compilation cycle. Custom sub-classes of Artifact can be used to write cooperating Generator and Linker combinations. This method is semantically equivalent to calling ArtifactSet.replace(Artifact) if an equivalent Artifact had previously been committed.

Specified by:
commitArtifact in interface GeneratorContext
Parameters:
logger - a logger; normally the logger passed into Generator.generate(TreeLogger, GeneratorContext, String) or a branch thereof
artifact - the Artifact to provide to the Linker chain.
Throws:
UnableToCompleteException

commitResource

public GeneratedResource commitResource(TreeLogger logger,
                                        java.io.OutputStream os)
                                 throws UnableToCompleteException
Description copied from interface: GeneratorContext
Commits resource generation begun with GeneratorContext.tryCreateResource(TreeLogger, String).

Specified by:
commitResource in interface GeneratorContext
Returns:
the GeneratedResource that was created as a result of committing the OutputStream.
Throws:
UnableToCompleteException - if the resource cannot be written to disk, if the specified stream is unknown, or if the stream has already been committed

getCachedGeneratorResult

public com.google.gwt.dev.javac.rebind.CachedRebindResult getCachedGeneratorResult()
Description copied from interface: GeneratorContextExt
Get cached result from a previous run of the current generator, if available.

Specified by:
getCachedGeneratorResult in interface GeneratorContextExt
Returns:
A CachedRebindResult object, if one has been provided to the context. Null is returned if there is no previous result, or if generator result caching is not enabled.

getPropertyOracle

public PropertyOracle getPropertyOracle()
Description copied from interface: GeneratorContext
Gets the property oracle for the current generator context. Generators can use the property oracle to query deferred binding properties.

Specified by:
getPropertyOracle in interface GeneratorContext

getResourcesOracle

public com.google.gwt.dev.resource.ResourceOracle getResourcesOracle()
Description copied from interface: GeneratorContext
Returns a resource oracle containing all resources that are mapped into the module's source (or super-source) paths. Conceptually, this resource oracle exposes resources which are "siblings" to GWT-compatible Java classes. For example, if the module includes com.google.gwt.core.client as a source package, then a resource at com/google/gwt/core/client/Foo.properties would be exposed by this resource oracle.

Specified by:
getResourcesOracle in interface GeneratorContext

getSourceLastModifiedTime

public long getSourceLastModifiedTime(JClassType sourceType)
Description copied from interface: GeneratorContextExt
Get source last modified time.

TODO(jbrosenberg): Implement in terms of a getVersion method yet to be added to TypeOracle, instead of looking for age of a java source file. This will soon be removed.

Specified by:
getSourceLastModifiedTime in interface GeneratorContextExt

getTypeOracle

public TypeOracle getTypeOracle()
Description copied from interface: GeneratorContext
Gets the type oracle for the current generator context. Generators can use the type oracle to ask questions about the entire translatable code base.

Specified by:
getTypeOracle in interface GeneratorContext
Returns:
a TypeOracle over all the relevant translatable compilation units in the source path

isGeneratorResultCachingEnabled

public boolean isGeneratorResultCachingEnabled()
Description copied from interface: GeneratorContextExt
Check whether generator result caching is currently enabled.

Specified by:
isGeneratorResultCachingEnabled in interface GeneratorContextExt

isProdMode

public boolean isProdMode()
Description copied from interface: GeneratorContextExt
Returns true if generators are being run to produce code for a production compile. Returns false for dev mode. Generators can use this information to produce code optimized for the target.

Specified by:
isProdMode in interface GeneratorContextExt

reuseTypeFromCacheIfAvailable

public boolean reuseTypeFromCacheIfAvailable(java.lang.String typeName)
Description copied from interface: GeneratorContextExt
Mark a type to be reused from the generator result cache. Calling this method with a successful response indicates that the calling generator will not re-generate this type. A cached version of this type will be added to the context once the calling generator returns from GeneratorExt.generateIncrementally(com.google.gwt.core.ext.TreeLogger, com.google.gwt.core.ext.GeneratorContextExt, java.lang.String), with a result containing RebindStatus.USE_PARTIAL_CACHED.

Specified by:
reuseTypeFromCacheIfAvailable in interface GeneratorContextExt
Parameters:
typeName - the fully qualified name of a type.
Returns:
true if the requested type is available from the generator result cache, false otherwise.

tryCreate

public java.io.PrintWriter tryCreate(TreeLogger logger,
                                     java.lang.String packageName,
                                     java.lang.String simpleName)
Description copied from interface: GeneratorContext
Attempts to get a PrintWriter so that the caller can generate the source code for the named type. If the named types already exists, null is returned to indicate that no work needs to be done. The file is not committed until GeneratorContext.commit(TreeLogger, PrintWriter) is called.

Specified by:
tryCreate in interface GeneratorContext
Parameters:
logger - a logger; normally the logger passed into Generator.generate(TreeLogger, GeneratorContext, String) or a branch thereof
packageName - the name of the package to which the create type belongs
simpleName - the unqualified source name of the type being generated
Returns:
null if the package and class already exists, otherwise a PrintWriter is returned.

tryCreateResource

public java.io.OutputStream tryCreateResource(TreeLogger logger,
                                              java.lang.String partialPath)
                                       throws UnableToCompleteException
Description copied from interface: GeneratorContext
Attempts to get an OutputStream so that the caller can write file contents into the named file underneath the compilation output directory. The file is not committed until GeneratorContext.commitResource(TreeLogger, OutputStream) is called.

Specified by:
tryCreateResource in interface GeneratorContext
Parameters:
logger - a logger; normally the logger passed into Generator.generate(TreeLogger, GeneratorContext, String) or a branch thereof
partialPath - the name of the file whose contents are to be written; the name can include subdirectories separated by forward slashes ('/')
Returns:
an OutputStream into which file contents can be written, or null if a resource by that name is already pending or already exists
Throws:
UnableToCompleteException - if the resource could not be initialized for some reason, such as if the specified partial path is invalid

GWT 2.3.0