/**
* this is the messy part of the whole implementation.
* AutoBeans have at compiletime no link to the interface which is going to be implemented
* so we have to guess. But the current namingconvention of AutoBeans does the following:
*
* path.to.your.package.InterfaceToImplement -> path.to.your.package.InterfaceToImplementAutoBean
*
* this in mind we can extract the interface which is going to be implemented later on. At
* runtime, the AutoBean has this interface implemented.
*
* See AutoBean documentation for more infos.
*
* @param cls
* @return
*/
private JClassType getUnderlyingInterface(final JClassType cls){
if(cls.getQualifiedSourceName().indexOf("AutoBean") == -1)
return null;
JClassType interfaceType = oracle.findType(cls.getQualifiedSourceName().substring(0, cls.getQualifiedSourceName().indexOf("AutoBean")));
return interfaceType;
}
}

This is built to only support BeanModels out of AutoBeans no BeanModelTag
or BeanModelMarker is needed on the interfaces. So every declared AutoBean
in your AutoBeanFactory becomes a BeanModel. And with GXT3.0 it sure becomes
very deprecated :)