## com.google.gwt.core.ext
Interface GeneratorContext

    public interface GeneratorContext

Provides metadata to deferred binding generators.

Method Summary
`void` `commit(TreeLogger logger, java.io.PrintWriter pw)` Commits source generation begun with `tryCreate(TreeLogger, String, String)`.
`void` `commitResource(TreeLogger logger, java.io.OutputStream os)` Commits resource generation begun with `tryCreateResource(TreeLogger, String)`.
`PropertyOracle` `getPropertyOracle()` Gets the property oracle for the current generator context.
`TypeOracle` `getTypeOracle()` Gets the type oracle for the current generator context.
`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.

Method Detail

### commit

    void commit(TreeLogger logger,
                java.io.PrintWriter pw)

  Commits source generation begun with `tryCreate(TreeLogger, String, String)`.

### commitResource

    void commitResource(TreeLogger logger,
                        java.io.OutputStream os)
                        throws UnableToCompleteException

  Commits resource generation begun with `tryCreateResource(TreeLogger, String)`.

  Throws:
    `UnableToCompleteException` - if the resource cannot be written to disk, if the specified stream is unknown, or if the stream has already been committed

### getPropertyOracle

    PropertyOracle getPropertyOracle()

  Gets the property oracle for the current generator context. Generators can use the property oracle to query deferred binding properties.

### getTypeOracle

    TypeOracle getTypeOracle()

  Gets the type oracle for the current generator context. Generators can use the type oracle to ask questions about the entire translatable code base.

  Returns:
    a TypeOracle over all the relevant translatable compilation units in the source path

### tryCreate

    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. If the named types already exists, `null` is returned to indicate that no work needs to be done. The file is not committed until `commit(TreeLogger, PrintWriter)` is called.

  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

    java.io.OutputStream tryCreateResource(TreeLogger logger,
                                           java.lang.String partialPath)
                                           throws UnableToCompleteException

  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 `commitResource(TreeLogger, OutputStream)` is called.

  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