package fr.lteconsulting.hexa.rebind; 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.core.ext.typeinfo.JClassType; import com.google.gwt.core.ext.typeinfo.NotFoundException; import com.google.gwt.core.ext.typeinfo.TypeOracle; public abstract class AbstractGenerator extends Generator { // Context and logger for code generation protected TreeLogger logger = null; protected GeneratorContext context = null; TypeOracle typeOracle; protected String typeName = null; protected JClassType type = null; protected abstract String generate(); @Override public String generate( TreeLogger logger, GeneratorContext context, String typeName ) throws UnableToCompleteException { this.logger = logger; this.context = context; this.typeName = typeName; if( typeName == null ) return null; typeOracle = context.getTypeOracle(); try { type = typeOracle.getType( typeName ); } catch( NotFoundException e ) { e.printStackTrace(); throw new RuntimeException( e ); } return generate(); } }