Interface ResourceGenerator
- All Known Implementing Classes:
AbstractResourceGenerator
ResourceGeneratorType
annotation. Instances of ResourceGenerator must
support default-instantiation (i.e. via Class.newInstance()
).
The methods on an instance of ResourceGenerator will be called in the following order by the resource generation system:
init(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext)
-
prepare(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext, com.google.gwt.resources.ext.ClientBundleRequirements, com.google.gwt.core.ext.typeinfo.JMethod)
once for each method - Based on the requirements specified by the ResourceGenerator, the
framework may decide that no further action is required. If this is the case,
the framework will immediately invoke
finish(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext)
. createFields(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext, com.google.gwt.resources.ext.ClientBundleFields)
createAssignment(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext, com.google.gwt.core.ext.typeinfo.JMethod)
once for each methodfinish(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext)
The methods prepare(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext, com.google.gwt.resources.ext.ClientBundleRequirements, com.google.gwt.core.ext.typeinfo.JMethod)
and createAssignment(com.google.gwt.core.ext.TreeLogger, com.google.gwt.resources.ext.ResourceContext, com.google.gwt.core.ext.typeinfo.JMethod)
will be called
only with those methods whose ResourcePrototype-derived type specifies the
particular type of ResourceGenerator as the implementor. The relative order
in which ResourceGenerators are invoked and the specific order in which the
bundle's methods are presented is undefined.
Direct access to the contents of the generated bundle implementation is intentionally limited to prevent unrelated ResourceGenerators from potentially creating namespace conflicts or generating invalid Java source.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptioncreateAssignment
(TreeLogger logger, ResourceContext context, JMethod method) Produce the right-hand-side of a Java assignment expression to provide the singleton instance object for a particular resource.void
createFields
(TreeLogger logger, ResourceContext context, ClientBundleFields fields) The ResourceGenerator can create fields within the implementation of the bundle type.void
finish
(TreeLogger logger, ResourceContext context) Called at the end of the resource generation phase and can be used to perform cleanup.void
init
(TreeLogger logger, ResourceContext context) Initialize the ResourceGenerator with the generation context that will remain valid for the duration of the resource-generation phase.void
prepare
(TreeLogger logger, ResourceContext context, ClientBundleRequirements requirements, JMethod method) Called once for each method the ResourceGenerator is expected to handle.
-
Method Details
-
createAssignment
String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException Produce the right-hand-side of a Java assignment expression to provide the singleton instance object for a particular resource.Example:
new MySampleResource() { public Foo getFoo() { ... } }
- Throws:
UnableToCompleteException
-
createFields
void createFields(TreeLogger logger, ResourceContext context, ClientBundleFields fields) throws UnableToCompleteException The ResourceGenerator can create fields within the implementation of the bundle type. The Fields object passed into this method is used to declare, and possibly initialize, Java fields within the final implementation of the resource bundle type.The Fields instance should not be retained beyond the lifetime of this method as operation on this object is not defined after the implementation of this method returns.
- Throws:
UnableToCompleteException
-
finish
Called at the end of the resource generation phase and can be used to perform cleanup.- Throws:
UnableToCompleteException
-
init
Initialize the ResourceGenerator with the generation context that will remain valid for the duration of the resource-generation phase. The logger instance should not be retained; use the per-method loggers instead.- Throws:
UnableToCompleteException
-
prepare
void prepare(TreeLogger logger, ResourceContext context, ClientBundleRequirements requirements, JMethod method) throws UnableToCompleteException Called once for each method the ResourceGenerator is expected to handle. This allows cross-resource state to be accumulated, such as for data aggregation.- Throws:
UnableToCompleteException
-