Hi Tom,
Tuscany overrides the templates, and many of the other GenModel settings
for it's code generation. If you look in class
org.apache.tuscany.sdo.generate.JavaGenerator you'll see code like this:
generator.getAdapterFactoryDescriptorRegistry().addDescriptor
(GenModelPackage.eNS_URI, SDOGenModelGeneratorAdapterFactory.
DESCRIPTOR);
and this:
genModel.setRootExtendsInterface();
genModel.setRootImplementsInterface(commonj.sdo.DataObject);
genModel.setRootExtendsClass(
org.apache.tuscany.sdo.impl.DataObjectImpl);
genModel.setFeatureMapWrapperInterface(commonj.sdo.Sequence);
genModel.setFeatureMapWrapperInternalInterface(
org.apache.tuscany.sdo.util.BasicSequence);
genModel.setFeatureMapWrapperClass(
org.apache.tuscany.sdo.util.BasicSequence);
genModel.setSuppressEMFTypes(true);
genModel.setSuppressEMFMetaData(true);
genModel.setSuppressEMFModelTags(true);
genModel.setCanGenerate(true);
//FIXME workaround java.lang.NoClassDefFoundError:
org/eclipse/jdt/core/jdom/IDOMNode with 02162006 build
genModel.setFacadeHelperClass(Hack);
genModel.setForceOverwrite(true);
... etc ...
I think you should be able set up the EMF generator (GUI) the same way,
but I'd ask on the EMF newsgroup. If you can figure out how to do it and
contribute something back to Tuscany, that would be really great.
Thanks,
Frank
kelvin goodson [EMAIL PROTECTED] wrote on 06/25/2007 08:24:22
AM:
Hi Tom,
the only generator we have in good shape to generate Tuscany SDO
classes is the XSD to Java generator. I think it would be a
significant new feature to properly support what you are trying to do.
You are correct in your understanding that you must arrange for a
specialised factory to be in place to create your types, so that they
are instances of Type rather than of EClass. Tuscany SDO itself has to
do this in order to ensure that the SDOFactory is used to create SDO
objects.
Regards, Kelvin.
On 25/06/07, Thomas Kuhn [EMAIL PROTECTED] wrote:
Hi,
I'm getting a ClassCastException (see below) when I try to do
myDataObj.getChangeSummary().beginLogging();
I am use EMF to create the objects. I changed the .genmodel file to
generate
SDO objects (I changed the genmodel first to create SDO 1.0 objects.
Subsequently, I modified the .genmodel file to generate code that uses
the
Tuscany classes). The generated interfaces extend DataObject and their
implementations correctly extend DataObjectImpl. I think the problem
lies in
the generated Package file, where getMyDataObj() returns an EClass. If
it
would be of any help, I can provide the .genmodel file.
Is it possible at all to generate SDO from an EMF model?
Thanks in advance,
Tom
java.lang.ClassCastException: org.eclipse.emf.ecore.impl.EClassImpl
at
org.apache.tuscany.sdo.impl.DataObjectImpl.getType(DataObjectImpl.java:192)
at
org.apache.tuscany.sdo.util.DataObjectUtil.getChangeSummary(DataObjectUtil.j
ava:688)
at
org.apache.tuscany.sdo.impl.DataObjectImpl.getChangeSummary(DataObjectImpl.j
ava:1314)
Environment: EMF 2.2.0, SDO 2.1.0 incubating beta1
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]