public class StateManagerGenerator extends Generator {
public static final String STATE_MANAGER_ABF = "GXT.state.autoBeanFactory";
@Override
public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException {
TypeOracle oracle = context.getTypeOracle();
JClassType type = oracle.findType(typeName);
JClassType stateMangerType = oracle.findType(Name.getSourceNameForClass(StateManager.class));
if (type == null || type.isClass() == null || !type.isAssignableTo(stateMangerType)) {
logger.log(Type.ERROR, "This generator only can function on StateManager subtypes");
throw new UnableToCompleteException();
}
String abf;
try {
abf = context.getPropertyOracle().getConfigurationProperty(STATE_MANAGER_ABF).getValues().get(0);
} catch (BadPropertyValueException ex) {
logger.log(Type.ERROR, "Could not read property for " + STATE_MANAGER_ABF, ex);
throw new UnableToCompleteException();
}
JClassType abfType = oracle.findType(abf);
if (abfType == null) {
logger.log(Type.ERROR, "Cannot find type " + abf + " in gwt classpath");
throw new UnableToCompleteException();
}