Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource
[Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource [message #129106] |
Wed, 27 August 2008 02:50 |
Eclipse User |
|
|
|
Originally posted by: mduduzi.keswa.isizwe.com
This is a multi-part message in MIME format.
--------------040406070602040407090404
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
All,
I would like to use ChangeRecorder to capture changes made on HB
resource eobjects. I'm able to record changes when an EObject is newly
created but not when it is loaded from HB resource.
Please take a look at attached example.
P.S.: Martin, Ed, thanks for all your help and patience.
Rgs,
-Mdu
--------------040406070602040407090404
Content-Type: text/plain;
name="Dynamic.java"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="Dynamic.java"
/**
* <copyright>
*
* Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Martin Taal
* </copyright>
*
* $Id: Dynamic.java,v 1.4 2008/02/28 07:07:51 mtaal Exp $
*/
package hbtutorial;
import java.awt.print.Book;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.change.ChangeDescription;
import org.eclipse.emf.ecore.change.ChangeKind;
import org.eclipse.emf.ecore.change.ChangePackage;
import org.eclipse.emf.ecore.change.FeatureChange;
import org.eclipse.emf.ecore.change.ListChange;
import org.eclipse.emf.ecore.change.util.ChangeRecorder;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
import org.eclipse.emf.teneo.hibernate.HbDataStore;
import org.eclipse.emf.teneo.hibernate.HbHelper;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Environment;
/**
* Dynamic Tutorial
*
* @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
* @version $Revision: 1.4 $
*/
public class Dynamic {
/** The main method */
public static void main(String[] args) {
// create resource set and resource
ResourceSet resourceSet = new ResourceSetImpl();
// Register XML resource factory
resourceSet.getResourceFactoryRegistry().getExtensionToFacto ryMap().put( "xmi",
new XMIResourceFactoryImpl());
final EcoreFactory efactory = EcoreFactory.eINSTANCE;
final EcorePackage epackage = EcorePackage.eINSTANCE;
final XMLTypePackage xmlpackage = XMLTypePackage.eINSTANCE;
final EcorePackage ecorepackage = EcorePackage.eINSTANCE;
final ChangePackage changePackage = ChangePackage.eINSTANCE;
// first do the quick start with the correct dbname
String hbName = "MySF";
// create the HbDataStore
HbDataStore hbds = (HbDataStore)HbHelper.INSTANCE.createRegisterDataStore(hbNam e);
//EPackage pkg = EcoreFactory.eINSTANCE.createEPackage();
final Properties props = new Properties();
props.setProperty(Environment.DRIVER, "com.mysql.jdbc.Driver");
props.setProperty(Environment.USER, "root");
props.setProperty(Environment.URL, "jdbc:mysql://127.0.0.1:3306/dynamiclibrary");
props.setProperty(Environment.PASS, "root");
props.setProperty(Environment.DIALECT, org.hibernate.dialect.MySQLInnoDBDialect.class.getName());
hbds.setProperties(props);
EPackage companyPackage = efactory.createEPackage();
companyPackage.setName("company");
companyPackage.setNsPrefix("company");
companyPackage.setNsURI("http:///com.example.company.ecore");
// create the SchoolBook EClass
EClass schoolBookEClass = efactory.createEClass();
schoolBookEClass.setName("SchoolBook");
// create a new attribute for this EClass
EAttribute level = efactory.createEAttribute();
level.setName("level");
level.setEType(epackage.getEInt());
schoolBookEClass.getEStructuralFeatures().add(level);
// Set the supertype of SchoolBook to the Book
//schoolBookEClass.getESuperTypes().add(LibraryPackage.eINST ANCE.getBook());
// create a course
EClass courseEClass = efactory.createEClass();
courseEClass.setName("Course");
// give the Course a name
EAttribute courseName = efactory.createEAttribute();
courseName.setName("courseName");
courseName.setEType(epackage.getEString());
courseEClass.getEStructuralFeatures().add(courseName);
// A course always uses one SchoolBook
EReference courseBook = efactory.createEReference();
courseBook.setName("courseBook");
courseBook.setEType(schoolBookEClass);
courseBook.setContainment(false);
courseEClass.getEStructuralFeatures().add(courseBook);
// Create a new EPackage and add the new EClasses
EPackage schoolPackage = efactory.createEPackage();
schoolPackage.setName("elv");
schoolPackage.setNsPrefix("elv");
schoolPackage.setNsURI("http:///www.elver.org/School");
schoolPackage.getEClassifiers().add(courseEClass);
schoolPackage.getEClassifiers().add(schoolBookEClass);
EPackage.Registry.INSTANCE.put(schoolPackage.getNsURI(), schoolPackage);
EPackage.Registry.INSTANCE.put(companyPackage.getNsURI(), companyPackage);
EPackage.Registry.INSTANCE.put(xmlpackage.getNsURI(), xmlpackage);
EPackage.Registry.INSTANCE.put(ecorepackage.getNsURI(),ecore package);
EPackage.Registry.INSTANCE.put(changePackage.getNsURI(),chan gePackage);
//resourceSet.getPackageRegistry().put(companyPackage.getNsU RI(), companyPackage);
hbds.setEPackages(new EPackage[]{companyPackage,schoolPackage,xmlpackage,ecorepack age});
// print the hibernate.hbm.xml for demo purposes
//System.err.println(hbds.getMappingXML());
// This tutorial will create a new type of book which inherits from the standard
// Book
// Now reset the epackages in the datastore
//hbds.setEPackages(new EPackage[]{LibraryPackage.eINSTANCE, schoolPackage});
// recreate the database
hbds.initialize();
// print the hibernate.hbm.xml for demo purposes
//System.err.println(hbds.getMappingXML());
// and create a course
//course.eSet(courseBook, bk);
final SessionFactory sessionFactory = hbds.getSessionFactory();
EObject course = schoolPackage.getEFactoryInstance().create(courseEClass);
course.eSet(courseName, "Dutch Literature Level 1");
// now persist them all
Session session = sessionFactory.openSession();
Transaction tx = session.getTransaction();
//session.save(companyPackage);
/*
session.save(courseEClass);
session.save(schoolBookEClass);
session.save(schoolPackage);
*/
/*
tx.begin();
session.save(course);
tx.commit();
*/
// Now query for the books, at least one of them should be a SchoolBook
URI uri1 = URI.createURI("hibernate://?dsname=MySF&query1=FROM Course");
Resource res1 = resourceSet.createResource(uri1);
tx.begin();
try
{
res1.load(Collections.EMPTY_MAP);
}
catch (IOException e)
{
e.printStackTrace();
}
tx.commit();
tx.begin();
EObject eobject = res1.getContents().get(0);
ChangeRecorder cr = new ChangeRecorder(res1);
eobject.eSet(courseName,"English 1");
System.out.println(eobject);
ChangeDescription changeDescription = cr.endRecording();
EMap<EObject, EList<FeatureChange>> objectChanges = changeDescription.getObjectChanges();
System.out.println("change size: "+objectChanges.size());
course.eSet(courseName, "Dutch Literature Level 1");
tx.commit();
session.close();
}
}
--------------040406070602040407090404--
|
|
|
Re: [Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource [message #129153 is a reply to message #129106] |
Thu, 28 August 2008 10:11 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Mdu,
I tested this and with me it works fine. I used the following code (which is the same as yours):
URI uri1 = URI.createURI("hibernate://?dsname=Library&query1=FROM Course");
Resource res1 = new ResourceSetImpl().createResource(uri1);
try {
res1.load(Collections.EMPTY_MAP);
} catch (IOException e) {
e.printStackTrace();
}
eobject = res1.getContents().get(0);
ChangeRecorder cr = new ChangeRecorder(res1);
eobject.eSet(courseName, "English 1");
System.out.println(eobject);
System.out.println(eobject.eGet(courseName));
ChangeDescription changeDescription = cr.endRecording();
EMap<EObject, EList<FeatureChange>> objectChanges = changeDescription.getObjectChanges();
System.out.println("change size: " + objectChanges.size());
And the output is this:
org.eclipse.emf.ecore.impl.DynamicEObjectImpl@12dd538 (eClass:
org.eclipse.emf.ecore.impl.EClassImpl@15f1f9c (name: Course) (instanceClassName: null) (abstract:
false, interface: false))
English 1
change size: 1
which seemed fine.
btw, support for Teneo is given on the EMF newsgroup (which I cc-ed).
gr. Martin
Mdu wrote:
> All,
> I would like to use ChangeRecorder to capture changes made on HB
> resource eobjects. I'm able to record changes when an EObject is newly
> created but not when it is loaded from HB resource.
> Please take a look at attached example.
>
> P.S.: Martin, Ed, thanks for all your help and patience.
>
> Rgs,
> -Mdu
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource [message #129165 is a reply to message #129153] |
Thu, 28 August 2008 07:10 |
Eclipse User |
|
|
|
Originally posted by: mduduzi.keswa.isizwe.com
Martin, Thanks,
I originally thought the problem was with Teneo - but it is more
basic than that and thus my post in the .emft newsgroup 'How to retrieve
newValue for FeatureChange...'; and yes I was able to reproduce the same
results with code similar to yours.
As I understand it, ChangeDescription (somewhere) will contain
oldValue and newValue of courseName. I could then get oldValue by
calling FeatureChange.getValue() - but I couldn't access the newValue
within the FeatureChange.
Is it because my understanding of
ChangeRecorder/ChangeDescription/Featurechange is incorrect on what gets
recorded?
What is ListChange supposed to store within FeatureChange. Is it only
when attribute being changed is a reference?
Regards,
-Mdu
Martin Taal wrote:
> Hi Mdu,
> I tested this and with me it works fine. I used the following code
> (which is the same as yours):
> URI uri1 =
> URI.createURI("hibernate://?dsname=Library&query1=FROM Course");
> Resource res1 = new ResourceSetImpl().createResource(uri1);
> try {
> res1.load(Collections.EMPTY_MAP);
> } catch (IOException e) {
> e.printStackTrace();
> }
>
> eobject = res1.getContents().get(0);
> ChangeRecorder cr = new ChangeRecorder(res1);
> eobject.eSet(courseName, "English 1");
> System.out.println(eobject);
> System.out.println(eobject.eGet(courseName));
>
> ChangeDescription changeDescription = cr.endRecording();
>
> EMap<EObject, EList<FeatureChange>> objectChanges =
> changeDescription.getObjectChanges();
> System.out.println("change size: " + objectChanges.size());
>
> And the output is this:
> org.eclipse.emf.ecore.impl.DynamicEObjectImpl@12dd538 (eClass:
> org.eclipse.emf.ecore.impl.EClassImpl@15f1f9c (name: Course)
> (instanceClassName: null) (abstract: false, interface: false))
> English 1
> change size: 1
>
> which seemed fine.
>
> btw, support for Teneo is given on the EMF newsgroup (which I cc-ed).
>
> gr. Martin
>
> Mdu wrote:
>> All,
>> I would like to use ChangeRecorder to capture changes made on HB
>> resource eobjects. I'm able to record changes when an EObject is newly
>> created but not when it is loaded from HB resource.
>> Please take a look at attached example.
>>
>> P.S.: Martin, Ed, thanks for all your help and patience.
>>
>> Rgs,
>> -Mdu
>
>
|
|
|
Re: [Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource [message #129178 is a reply to message #129165] |
Thu, 28 August 2008 13:06 |
Ed Merks Messages: 33142 Registered: July 2009 |
Senior Member |
|
|
Mdu,
As it turns out, I think its an assumption you're making about the
nature of the change description. You're assuming it's a description of
how to get to the original state to the final state when in fact it's a
description from how to get to the current state to some other state.
Hence in this scenario, it's a reverse delta. The reason for this
design (often people ask, why did you do it like this?) is because the
change description is a model instance you can save. Hence when it
saves references to the objects that have changed, it needs to serialize
those based on the actual current state of those objects. Consider for
example if something was added to the tree via containment. The
reference needs to be to the new object containing within the resource.
If you did applyAndReverse, you'd see that result would be that the
object that was added is now contained by the ChangeDescription itself
and instead of a REMOVE the change has become an ADD...
Mdu wrote:
> Martin, Thanks,
> I originally thought the problem was with Teneo - but it is more
> basic than that and thus my post in the .emft newsgroup 'How to
> retrieve newValue for FeatureChange...'; and yes I was able to
> reproduce the same results with code similar to yours.
> As I understand it, ChangeDescription (somewhere) will contain
> oldValue and newValue of courseName. I could then get oldValue by
> calling FeatureChange.getValue() - but I couldn't access the newValue
> within the FeatureChange.
> Is it because my understanding of
> ChangeRecorder/ChangeDescription/Featurechange is incorrect on what
> gets recorded?
> What is ListChange supposed to store within FeatureChange. Is it only
> when attribute being changed is a reference?
>
>
> Regards,
> -Mdu
>
>
> Martin Taal wrote:
>> Hi Mdu,
>> I tested this and with me it works fine. I used the following code
>> (which is the same as yours):
>> URI uri1 =
>> URI.createURI("hibernate://?dsname=Library&query1=FROM Course");
>> Resource res1 = new ResourceSetImpl().createResource(uri1);
>> try {
>> res1.load(Collections.EMPTY_MAP);
>> } catch (IOException e) {
>> e.printStackTrace();
>> }
>>
>> eobject = res1.getContents().get(0);
>> ChangeRecorder cr = new ChangeRecorder(res1);
>> eobject.eSet(courseName, "English 1");
>> System.out.println(eobject);
>> System.out.println(eobject.eGet(courseName));
>>
>> ChangeDescription changeDescription = cr.endRecording();
>>
>> EMap<EObject, EList<FeatureChange>> objectChanges =
>> changeDescription.getObjectChanges();
>> System.out.println("change size: " + objectChanges.size());
>>
>> And the output is this:
>> org.eclipse.emf.ecore.impl.DynamicEObjectImpl@12dd538 (eClass:
>> org.eclipse.emf.ecore.impl.EClassImpl@15f1f9c (name: Course)
>> (instanceClassName: null) (abstract: false, interface: false))
>> English 1
>> change size: 1
>>
>> which seemed fine.
>>
>> btw, support for Teneo is given on the EMF newsgroup (which I cc-ed).
>>
>> gr. Martin
>>
>> Mdu wrote:
>>> All,
>>> I would like to use ChangeRecorder to capture changes made on HB
>>> resource eobjects. I'm able to record changes when an EObject is
>>> newly created but not when it is loaded from HB resource.
>>> Please take a look at attached example.
>>>
>>> P.S.: Martin, Ed, thanks for all your help and patience.
>>>
>>> Rgs,
>>> -Mdu
>>
>>
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: [Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource [message #620268 is a reply to message #129106] |
Thu, 28 August 2008 10:11 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Mdu,
I tested this and with me it works fine. I used the following code (which is the same as yours):
URI uri1 = URI.createURI("hibernate://?dsname=Library&query1=FROM Course");
Resource res1 = new ResourceSetImpl().createResource(uri1);
try {
res1.load(Collections.EMPTY_MAP);
} catch (IOException e) {
e.printStackTrace();
}
eobject = res1.getContents().get(0);
ChangeRecorder cr = new ChangeRecorder(res1);
eobject.eSet(courseName, "English 1");
System.out.println(eobject);
System.out.println(eobject.eGet(courseName));
ChangeDescription changeDescription = cr.endRecording();
EMap<EObject, EList<FeatureChange>> objectChanges = changeDescription.getObjectChanges();
System.out.println("change size: " + objectChanges.size());
And the output is this:
org.eclipse.emf.ecore.impl.DynamicEObjectImpl@12dd538 (eClass:
org.eclipse.emf.ecore.impl.EClassImpl@15f1f9c (name: Course) (instanceClassName: null) (abstract:
false, interface: false))
English 1
change size: 1
which seemed fine.
btw, support for Teneo is given on the EMF newsgroup (which I cc-ed).
gr. Martin
Mdu wrote:
> All,
> I would like to use ChangeRecorder to capture changes made on HB
> resource eobjects. I'm able to record changes when an EObject is newly
> created but not when it is loaded from HB resource.
> Please take a look at attached example.
>
> P.S.: Martin, Ed, thanks for all your help and patience.
>
> Rgs,
> -Mdu
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource [message #620269 is a reply to message #129153] |
Thu, 28 August 2008 07:10 |
Mdu Mising name Messages: 22 Registered: October 2009 |
Junior Member |
|
|
Martin, Thanks,
I originally thought the problem was with Teneo - but it is more
basic than that and thus my post in the .emft newsgroup 'How to retrieve
newValue for FeatureChange...'; and yes I was able to reproduce the same
results with code similar to yours.
As I understand it, ChangeDescription (somewhere) will contain
oldValue and newValue of courseName. I could then get oldValue by
calling FeatureChange.getValue() - but I couldn't access the newValue
within the FeatureChange.
Is it because my understanding of
ChangeRecorder/ChangeDescription/Featurechange is incorrect on what gets
recorded?
What is ListChange supposed to store within FeatureChange. Is it only
when attribute being changed is a reference?
Regards,
-Mdu
Martin Taal wrote:
> Hi Mdu,
> I tested this and with me it works fine. I used the following code
> (which is the same as yours):
> URI uri1 =
> URI.createURI("hibernate://?dsname=Library&query1=FROM Course");
> Resource res1 = new ResourceSetImpl().createResource(uri1);
> try {
> res1.load(Collections.EMPTY_MAP);
> } catch (IOException e) {
> e.printStackTrace();
> }
>
> eobject = res1.getContents().get(0);
> ChangeRecorder cr = new ChangeRecorder(res1);
> eobject.eSet(courseName, "English 1");
> System.out.println(eobject);
> System.out.println(eobject.eGet(courseName));
>
> ChangeDescription changeDescription = cr.endRecording();
>
> EMap<EObject, EList<FeatureChange>> objectChanges =
> changeDescription.getObjectChanges();
> System.out.println("change size: " + objectChanges.size());
>
> And the output is this:
> org.eclipse.emf.ecore.impl.DynamicEObjectImpl@12dd538 (eClass:
> org.eclipse.emf.ecore.impl.EClassImpl@15f1f9c (name: Course)
> (instanceClassName: null) (abstract: false, interface: false))
> English 1
> change size: 1
>
> which seemed fine.
>
> btw, support for Teneo is given on the EMF newsgroup (which I cc-ed).
>
> gr. Martin
>
> Mdu wrote:
>> All,
>> I would like to use ChangeRecorder to capture changes made on HB
>> resource eobjects. I'm able to record changes when an EObject is newly
>> created but not when it is loaded from HB resource.
>> Please take a look at attached example.
>>
>> P.S.: Martin, Ed, thanks for all your help and patience.
>>
>> Rgs,
>> -Mdu
>
>
|
|
|
Re: [Teneo] Problem using ChangeRecorder with EObject(s) loaded with HB resource [message #620270 is a reply to message #129165] |
Thu, 28 August 2008 13:06 |
Ed Merks Messages: 33142 Registered: July 2009 |
Senior Member |
|
|
Mdu,
As it turns out, I think its an assumption you're making about the
nature of the change description. You're assuming it's a description of
how to get to the original state to the final state when in fact it's a
description from how to get to the current state to some other state.
Hence in this scenario, it's a reverse delta. The reason for this
design (often people ask, why did you do it like this?) is because the
change description is a model instance you can save. Hence when it
saves references to the objects that have changed, it needs to serialize
those based on the actual current state of those objects. Consider for
example if something was added to the tree via containment. The
reference needs to be to the new object containing within the resource.
If you did applyAndReverse, you'd see that result would be that the
object that was added is now contained by the ChangeDescription itself
and instead of a REMOVE the change has become an ADD...
Mdu wrote:
> Martin, Thanks,
> I originally thought the problem was with Teneo - but it is more
> basic than that and thus my post in the .emft newsgroup 'How to
> retrieve newValue for FeatureChange...'; and yes I was able to
> reproduce the same results with code similar to yours.
> As I understand it, ChangeDescription (somewhere) will contain
> oldValue and newValue of courseName. I could then get oldValue by
> calling FeatureChange.getValue() - but I couldn't access the newValue
> within the FeatureChange.
> Is it because my understanding of
> ChangeRecorder/ChangeDescription/Featurechange is incorrect on what
> gets recorded?
> What is ListChange supposed to store within FeatureChange. Is it only
> when attribute being changed is a reference?
>
>
> Regards,
> -Mdu
>
>
> Martin Taal wrote:
>> Hi Mdu,
>> I tested this and with me it works fine. I used the following code
>> (which is the same as yours):
>> URI uri1 =
>> URI.createURI("hibernate://?dsname=Library&query1=FROM Course");
>> Resource res1 = new ResourceSetImpl().createResource(uri1);
>> try {
>> res1.load(Collections.EMPTY_MAP);
>> } catch (IOException e) {
>> e.printStackTrace();
>> }
>>
>> eobject = res1.getContents().get(0);
>> ChangeRecorder cr = new ChangeRecorder(res1);
>> eobject.eSet(courseName, "English 1");
>> System.out.println(eobject);
>> System.out.println(eobject.eGet(courseName));
>>
>> ChangeDescription changeDescription = cr.endRecording();
>>
>> EMap<EObject, EList<FeatureChange>> objectChanges =
>> changeDescription.getObjectChanges();
>> System.out.println("change size: " + objectChanges.size());
>>
>> And the output is this:
>> org.eclipse.emf.ecore.impl.DynamicEObjectImpl@12dd538 (eClass:
>> org.eclipse.emf.ecore.impl.EClassImpl@15f1f9c (name: Course)
>> (instanceClassName: null) (abstract: false, interface: false))
>> English 1
>> change size: 1
>>
>> which seemed fine.
>>
>> btw, support for Teneo is given on the EMF newsgroup (which I cc-ed).
>>
>> gr. Martin
>>
>> Mdu wrote:
>>> All,
>>> I would like to use ChangeRecorder to capture changes made on HB
>>> resource eobjects. I'm able to record changes when an EObject is
>>> newly created but not when it is loaded from HB resource.
>>> Please take a look at attached example.
>>>
>>> P.S.: Martin, Ed, thanks for all your help and patience.
>>>
>>> Rgs,
>>> -Mdu
>>
>>
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Goto Forum:
Current Time: Fri Apr 26 15:40:06 GMT 2024
Powered by FUDForum. Page generated in 0.04758 seconds
|