package com.googlecode.gwt.test.deferred; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.ext.Generator; import com.google.gwt.core.ext.GeneratorContext; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.core.ext.UnableToCompleteException; import com.google.gwt.user.rebind.ClassSourceFileComposerFactory; import com.google.gwt.user.rebind.SourceWriter; import java.io.PrintWriter; import java.util.HashMap; public class MyGenerator extends Generator { @Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { String packageName = "com.slazzer"; String className = "MyGeneratedClass"; ClassSourceFileComposerFactory factory = new ClassSourceFileComposerFactory(packageName, className); PrintWriter pw = context.tryCreate(logger, packageName, className); if (pw != null) { factory.addImplementedInterface(IGenerateWith.class.getCanonicalName()); factory.addImport(GWT.class.getCanonicalName()); factory.addImport(JavaScriptObject.class.getCanonicalName()); factory.addImport(HashMap.class.getCanonicalName()); SourceWriter writer = factory.createSourceWriter(context, pw); writer.println("public String getMessage() {"); writer.println(" return \"generated with MyGenerator class\";"); writer.println("}"); writer.commit(logger); } return factory.getCreatedClassName(); } }