Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » derived, volatile, not changeable, BUT NOT transient: error on resource creation
derived, volatile, not changeable, BUT NOT transient: error on resource creation [message #430354] Sat, 16 May 2009 14:44 Go to next message
Philipp Kutter is currently offline Philipp KutterFriend
Messages: 306
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------070009020406080104060606
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi.
We have tons of models where a feature is
-derived
-volatile
-not-changeable

BUT we want to persist it, and thus it is NOT transient.

Take the following model (ecore is in the attached zip):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:minimal="http://www.xocl.org/Minimal"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="minimal"
ecore:package="org.examples.Minimal"
targetNamespace="http://www.xocl.org/Minimal">
<xsd:import namespace="http://www.eclipse.org/emf/2002/Ecore"
schemaLocation="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.xsd "/>
<xsd:element ecore:ignore="true" name="MyClass" type="minimal:MyClass"/>

<xsd:complexType name="MyClass">
<xsd:attribute
ecore:changeable="false"
ecore:derived="true"
ecore:transient="false"
ecore:volatile="true"
name="tFdTvTchFmFattr01"
type="ecore:EString"/>
</xsd:complexType>

</xsd:schema>

and I want to create the following resource:

<?xml version="1.0" encoding="UTF-8"?>
<minimal:MyClass
xmlns:minimal="http://www.xocl.org/Minimal"
tFdTvTchFmFattr01="My Calculated String Value"
/>

Then, when I reopen the resource, because of changeable=fales, the value
of tFdTvTchFmFattr01 should not be set.

BUT, instead, already when I try to create the resource with the
generated editor I get:

XMIException: org.xml.sax.SAXParseException: Premature end of file.
(platform:/resource/test/My.minimal)

The full error is below.

Any idea?

Best, Philipp

org.eclipse.emf.ecore.xmi.XMIException: org.xml.sax.SAXParseException:
Premature end of file. (platform:/resource/test/My.minimal, 1, 1)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.toXMIException(XML Handler.java:675)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.fatalError(XMLHand ler.java:698)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper. fatalError(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.rep ortError(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFat alError(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerIm pl$PrologDriver.next(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerIm pl.next(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentS cannerImpl.scanDocument(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuratio n.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuratio n.parse(Unknown
Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(U nknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser .parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSA XParser.parse(Unknown
Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl. java:181)
at
org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLRes ourceImpl.java:180)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(Resour ceImpl.java:1494)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(Resour ceImpl.java:1282)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:255)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:270)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:397)
at
org.examples.Minimal.presentation.MinimalEditor.createModel( MinimalEditor.java:945)
at
org.examples.Minimal.presentation.MinimalEditor.createPages( MinimalEditor.java:1002)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:357)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:659)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:459)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:595)
at
org.eclipse.ui.internal.EditorReference.getPart(EditorRefere nce.java:821)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:31 3)
at
org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:180)
at
org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:270)
at
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
at
org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:473)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1256)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1209)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:16 08)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:499)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103 )
at org.eclipse.ui.internal.PartStack.add(PartStack.java:485)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112 )
at
org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:63)
at
org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:225)
at
org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:213)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:778)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:677)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:638)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2854)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2762)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag e.java:2754)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2705)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2701)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2685)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2668)
at
org.examples.Minimal.presentation.MinimalModelWizard.perform Finish(MinimalModelWizard.java:294)
at
org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDi alog.java:752)
at
org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDi alog.java:373)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.jav a:624)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:228)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3880)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3473)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825 )
at org.eclipse.jface.window.Window.open(Window.java:801)
at
org.eclipse.ui.internal.handlers.WizardHandler$New.executeHa ndler(WizardHandler.java:253)
at
org.eclipse.ui.internal.handlers.WizardHandler.execute(Wizar dHandler.java:273)
at
org.eclipse.ui.internal.handlers.HandlerProxy.execute(Handle rProxy.java:294)
at org.eclipse.core.commands.Command.executeWithChecks(Command. java:476)
at
org.eclipse.core.commands.ParameterizedCommand.executeWithCh ecks(ParameterizedCommand.java:508)
at
org.eclipse.ui.internal.handlers.HandlerService.executeComma nd(HandlerService.java:169)
at
org.eclipse.ui.internal.handlers.SlaveHandlerService.execute Command(SlaveHandlerService.java:241)
at
org.eclipse.ui.internal.actions.CommandAction.runWithEvent(C ommandAction.java:157)
at
org.eclipse.jface.action.ActionContributionItem.handleWidget Selection(ActionContributionItem.java:584)
at
org.eclipse.jface.action.ActionContributionItem.access$2(Act ionContributionItem.java:501)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEven t(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3880)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3473)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 21)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:194)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:368)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper. createSAXParseException(Unknown
Source)
... 99 more

--------------070009020406080104060606
Content-Type: application/x-zip-compressed;
name="transienFALSEderivedTRUEchangeableFALSEvolatileTRUE.zip "
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename*0="transienFALSEderivedTRUEchangeableFALSEvolatileTRUE.zip "

UEsDBBQACAAIAG+FsDoAAAAAAAAAAAAAAAA/AAAAdHJhbnNpZW50RkFMU0Vk ZXJpdmVkVFJV
RWNoYW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS8uY2xhc3NwYXRonZBPTwIx EMXPmvgdNr0z
KxfjYVdizJpAIhhYvZLSTpaROi3TlsC3B/8QjQkcvM2b/Oa9l6kG23dXbFAi ea5VH65VgWy8
Je5q9dI+9m7V4O7qsjJOxxh0Wh7ExY9CTrIrVsS2VlGMKj6WX2N5mjSej6SX DtA4ChHhzSZw
OrNZHtJhNG3mD5Nxez8cN9PyL0ecUFg7sLjIHWT6vkSBWdJstdjXp3YXsBzp jZ41vT7c/KNS
sAjGC4LgOpOgfXa5I47nrHxOIaej24L4E67K3y/cA1BLBwj0pbHS0AAAAHgB AABQSwMEFAAI
AAgAb4WwOgAAAAAAAAAAAAAAAD0AAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRU UlVFY2hhbmdl
YWJsZUZBTFNFdm9sYXRpbGVUUlVFLy5wcm9qZWN0vZLPTgMhEMbPmvgOzd4F vXmg22j/nNQY
t32AKYxbGhYIsBsfX6CsZtM08WC8zffNfPwmE9jis1OzAZ2XRs+re3JXzVBz I6Ru59Vuu7l9
qBb1zTWzzhyRhxV67qQNcTq6V0xDh3VwoL1EHTaPz81aoJMDiu37bs0PoFuE vcLcGYyCIBWm
FqM5mt7gputiuGZ0rJJbgD4LOlH7XirRWORJFbmMUdAiO2Ut41qCXEnrkRxF INy4WMAAOYDu
Z4WYANf2ie2LplOD0TPKr7hWIHkBLT/Qh6f/xTb8gB38CbQ448kjL/QOy/RJ XL72qZ8WyHOX
MmnlN9W3Ur+eBcY6Eb//wvQrfgFQSwcI0SlpoQQBAADJAgAAUEsDBBQACAAI AG+FsDoAAAAA
AAAAAAAAAABzAAAAdHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFi bGVGQUxTRXZv
bGF0aWxlVFJVRS9UZXN0IHRyYW5zaWVuRkFMU0VkZXJpdmVkVFJVRWNoYW5l YWJsZUZBTFNF
dm9sYXRpbGVUUlVFLmxhdW5jaJ1Y224bNxB9L9B/EIQ81lRit0EQxE0ER3EL JLYhX1qgLQSK
O1pR5pIbXnRB4H/vcFc3SyuS8oNhmzsznBmeOTPkh4/zQrSmoA1X8rz9hrxu t0AylXGZn7fv
776cvGu3jKUyo0JJOG9L1f74+88/fRDUSTa+UHLEc6epRfWWXZQooXROgAle GiBlBsRx0nfS
8gL+UvpxiNbHbW9hqJQAKrvWaj50FlqPsDhv07IEmRGqc9NuTalwaNFqB+1O QMc8MlzW6QrO
qgJ9Zt0sWyuNqDBpWg9U8IxaaNjPoIbMdxTRnMUPtFwrBITZGNgjbNz65+r6 qvdfyK8q9vok
kjNQ6cxMevBLBaHyJp3mSCqXvipWoWOt9urHDHFgSspgIBR76pACLMV80g4p hcu5NJ1dDDGl
oXMHxrYwjdJwkF+6X297GWg+heyuf99jYyqBDgVUH6ZK4KYC/JdQVBmMqBM2 PQ1cMuEyuC59
SFSkIkBEkvB+FZZtiitvDuyps7ZRby24sTsbbycyg6HLfTmO6FRpbuFSK1ea 9kq1J61erBxs
VKyLvlIj2sl6186zbQ+mYNvgJLNLWyhHbvrXl/3ut0G3f3n/rXd1d7vO0oky rVc/LJIBWKLM
U+tktrUw8wtUs/Fmyf+Hi1JslqR4ChzMYa9ur+/7F73BTffujwF6+PDn516/ 3ZSdJcfNVuR2
IajBQ7HjG62mHI/yRds/NObj78L8+rpo4e/56W9vi4Bl79WS1tfqZ+QspKFV 5phtjNFkjwRD
CWgbEMAsZIM67YNlJTda89VMJNhPy/J7v/z9y54QU0WBvcfEJaUHBJdnp2T+ 7u1avKrnZ8Lw
3XGp5qQ8RbBYPqLMEg2lMtwqvQjus1JFXmNOayzWRnGKBTkGQg98Xltjo3hU nhWHXPpuvCeM
uSF8iD/M7X2b0CmdEwN6KiJpRjfICAmlIqAR6KgwwgCbuQ2naoJ5DXu/lSl/ yEoaAiKSkKKk
uk5Mo2ChtB3SBZmAtYsq+Eg421VLLMwRvh4FSSBA/KzaVqr8hGqsMQbGxPYo Rvi3P/95wZOs
a8iRhCP4rSzqehRbC/rGtZuUkdJFuOQqDzFZaWHEvZpSzX2PC++Krk05zAzB NJaA1QuGIMKG
kCUlyQCWLSL3KJ5YKSUgzmFjDjoyBlGSITXhhGCUWBXUmjGAjSZE0inPaRS1 eBR1mQXFkLMO
l9c+DVb2TvchVMXpIshdexSVXFWQBuQnrNUISmqYg1FOHydaM4zlQy62D/ww NvCuEmfBKCJS
6QMkNtSwOQu0iB9gFbXnfLMwFoqgrDI5r6iUJ+Vyi/FXRZrSKDz3hjqEcAyk hycVC8Ob/dhp
JnhRyQ/1na2pJlZe2O1SphRpsSn66+8xcEuhoYbaeNbbycREALRk6uQqO42N QyvSw8GM5lAc
GoO2ZwZjREI5ja0t02aWja9RsB+E1hoEsyD0JtSU8TGiakvJVJ3ITtvjSXJj f05ihDob1q0x
7qlM8PqOmjia1BfTaAAe44Gzx+wv6yClGgKB7k1AB7Q3vJe0o+e/Tydv9nvc M9BW/T9+RBM1
TOBQmGOnM/7iFiS6mhOPnVVT7zp7bI6uY2X6GW1XL+VSuHns2L0XvuThY8/z lxghB4b9F9tq
zkvzM5IZq9lgnR0lxSL5VQ2RW+LOsPPgt3rvGIxVAU//su2H2eV/hEsecgoj Z7hf+mOYM/C5
jvXI18ddxa4Geozyzc5TRYLKCCdqh3XVFF2n4TEb1/8HUEsHCKbVS4keBQAA HBcAAFBLAwQU
AAgACABvhbA6AAAAAAAAAAAAAAAARQAAAHRyYW5zaWVudEZBTFNFZGVyaXZl ZFRSVUVjaGFu
Z2VhYmxlRkFMU0V2b2xhdGlsZVRSVUUvYnVpbGQucHJvcGVydGllc3WOMQoC MRBF+4G5Q8At
NbmAChYKW2hlaaPJsEayO2GSgN7exG5hne69B8NHWKmt5fgRPzzzHhuaGTfV 9a5DQHj4SfvJ
huIoqZ3S6xuCmt/IjoJZCOfj9bDpL6elFkMZ6uv3GP7HKBxJsqeE8LpL0pbH 6ANpFkfS1iAk
LmJJ60pJrEHgkmPJP1G3V/EFUEsHCMO5lKSMAAAA8AAAAFBLAwQUAAgACABv hbA6AAAAAAAA
AAAAAAAARgAAAHRyYW5zaWVudEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2VhYmxl RkFMU0V2b2xh
dGlsZVRSVUUvcGx1Z2luLnByb3BlcnRpZXPj5VJWsEnOL6gsykzPKLHjBXH1 UfggIRXPFBVe
Ll6ugpzS9Mw8v8TcVAVbBd/MvMzcxBwF3/yU1BygXFF+WWZKahFUtry8XC+1 IjG3ICdVL78o
nZcLAFBLBwgmO1lLVgAAAGoAAABQSwMEFAAIAAgAb4WwOgAAAAAAAAAAAAAA AD8AAAB0cmFu
c2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVU UlVFL3BsdWdp
bi54bWyVUT1vwyAU3CP5P1CU1dCqS1Vhe4uUIVJVtXOF8KuDypcA1/a/L8SO Ww8dwgLv3t17
d4I1o1boG3yQ1lT4gdxjBEbYVpquwu9vh/IJN3WxYw0IJV2AX+5j4uZWat6V ZbFDTFg3edmd
Y50r+rdMwP7Y7otdWc4Sp/pOmrmDEIMxgslzkbPSxApb35FlJQH9md7WA+nA gOcR2g/HxRfv
ANcXfR6xINd6Pr2XFT7H6J4pHYaBjFYokmbTkzRSc4W3dKF4CMvykWunIJCF eb1flsVbYTJ2
si2oCut8Ub2IEn4BMJ2NMromvTX7SkvZfQC/iZ6BraM4OUhubo7ZR7lmfYVg ey/gwEW0fjom
5n9BGF1/9AdQSwcI1GfngxEBAABUAgAAUEsDBBQACAAIAG+FsDoAAAAAAAAA AAAAAABJAAAA
dHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0 aWxlVFJVRS9N
RVRBLUlORi9NQU5JRkVTVC5NRnWRMU/DMBCF90j5D1nYiEUZGFJ1KCgMqEFV C+xX55qeONvB
dqKkvx6njUKR2s3n7/neu3MBmvbofPqF1pHRWTITD3H03OiSMS1GOsHHCb2D wiy5q7mpSA/F
RLa92hkmeVZ4C9oRav+6XG3zEi21WH5sPnN5AF0h7BhPpDUMnhgHNHekK0Yf HBfeNn+tL0Ne
xHxhcG4N/pAl4kKrS2OHiNa0FIz/hVwZCUzHYDm0O08xwQ3+NGSxzDuUzaDI dUvWaBXGyJI3
aGGbpzPxFEd5Vxvr0zXIb6jCtMZWAjtQNaMTBWlSwPdxdPVeUChvwuDLcTQm Sc/Bxv6SqXYo
pLEobKM9KZzajAzVPpyDYN6Sox0x+T5bWMRT3ptq0Sm6+mJazVJ6ak9bWw9/ 3GcJw7GPo19Q
SwcIIq3nMjABAABIAgAAUEsDBBQACAAIAG+FsDoAAAAAAAAAAAAAAABPAAAA dHJhbnNpZW50
RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS9t b2RlbC9kZWZh
dWx0LmVkaXRvcmNvbmZpZ81UPW/bMBDdC/Q/ECxQ2UNEJ10KVUpauA46NEgB K0CAogNNnWy2
FCmQlD/+fY607CqoliJLRt7Hu3fv7pjf7BtFtmCdNLqgl+mMEtDCVFKvC/pQ 3l58pDfXb9/k
eyNUtqikN3ZudC3XBBO1y/ZOFnTjfZsxttvt0t2H1Ng1u5rNLtnj3fel2EDD L6R2nmsB9JSF
aM/SgiEmDktQLExI7vlKQV9U8wYK+hVq3ilPSSVdq/ihf8+N6hrsoubKwdn5 DXgF9mSNkAgq
YixRfAXIpORrSnay8puCIvVTVIgDpY6173h7NqPjDxzIxkL9rA0QSrYOYifQ 1EGGK7YQxsI7
xhb3q98gPGVDmC1XHRBUMfOHFluLOt8LNce6OIp9a8EdZ5O8V/5TkgqjBfcT B6pOgyqeS43D
ugXuOwuTaYoAX1yJYBMIhbNssfS2E+jlqo+apkHH6QkruU6mA1Y5G2sarVGy cQGXSOc1KRjW
6Ic1W4mjj1K+rL0g52tqb3RB+pVQ3LnRNYie4+j/T46cDU7waBEBqzTlXzvm ksi1oIx9HiT8
jDeb9Dea/Dqf4EsFQo5jLMJvxf75rtD6BFBLBwhcL0YVuQEAAOwEAABQSwME FAAIAAgAb4Ww
OgAAAAAAAAAAAAAAAEgAAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hh bmdlYWJsZUZB
TFNFdm9sYXRpbGVUUlVFL21vZGVsL21pbmltYWwuZWNvcmWNUsFqwzAMvQ/6 D8E7t067ywhJ
y9gaKKxQ1hR2VR0lMbOdErtJ+vdT0rQ0sMN8MZLee5KeHa5arbwaKytLE7H5 zGceGlGm0uQR
OyTx9JWtlpOnEEVZYbDegfiBHL1Wy+DOWhBr8uTRITFjAypGrHDuFHDeNM2s 1PmsrHL+vd2w
G8SOIc1Lj1j4/pxgn3tRoIapNNaBEThS7ycZkVEoebLYK6DOOpUFX3cw5hnQ BN5KIzWoQcfY
w9dmpNCWQvX0G5Awuwoz2UZMD6llRw7xXYG1MpO0vEdbBO5yogaDPX3x3vRy DZfXriHuXXUW
7lyBihHoxj8U3pyr5PHs7qO7OE3qRBSxjoFq/pweKHlkfICDLuH9y5Fnztc0 Bz3vYEZ3RAEm
RzgqUs1AWWpelwqc7BI0NMUpVrLGdAj51Qz+6Eb3S/j4m1DqF1BLBwj1i3Vz RgEAAGECAABQ
SwMEFAAIAAgAb4WwOgAAAAAAAAAAAAAAAEsAAAB0cmFuc2llbnRGQUxTRWRl cml2ZWRUUlVF
Y2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVUUlVFL21vZGVsL21pbmltYWwuZ2Vu bW9kZWy1VMGO
2jAQva+0/2C558Ysh6pChBXaJRUSVIiCtFdjD8Fax45sJ4S/r+PEbKMt2rZS OWHPzHtv3owz
fWwKiWowVmiV4odkhBEoprlQeYr3u+zzV/w4u7+b5qAKzUFOvoFat39QU4jJ tXDsC+/vkP95
PGUnPpjik3PlhJDz+ZzoIk+0ycnLeon7FGDawCAJmBSlhZAIxZGMR6MxWbRp A+wo5ePaqBWj
UPAsDDCnzSXFxBmqrADlsvnqx4KDETXw3Xa/YCeqcqAHCSFSa0mdkNCGiDWs VxLwNrLKhVo+
p/hf0HpR32nhXVgLJQoqe3RRlNo4MC20b+janG8sibEk+IcR00UpBVUMVlC3 pnxpZ8h0eTEi
P7lMgOQ2xUcqLeBZi9/Ocq6Udl6KVhZZXRn2B5OIbhJoOgnkV22N5Z2kJIY7 ttt8FqQfB/AN
Za80BxvzfQUHR4W06BUuA12NZjKIin6hmsrKYxXduVWBSeQlQ+J4PQDncSf2 2+UVLekxfosw
PfomRd55MYvEofUpGcSi2bFBVBo4iuZt2uhALfTRftIN9eP0XiAD0aeX9Qoj LmypbbtIG6Nr
4Vcso/0uO1PFB4JQ0HGFHKj7RD6ayP/agNuMfzM3f/skqbXeyEATDu96JOtL CAy5M6CuMmEE
ugTjvG1boFwrefGPxfgoPJ2E5PGhdAx9VYrDabKYO2fEoXKAbpASl/FdvWOn rMioTx49DLvq
9b8tV1yN9hNL3n1j/e1PUEsHCLMJ6UcvAgAAoQUAAFBLAwQUAAgACABvhbA6 AAAAAAAAAAAA
AAAARgAAAHRyYW5zaWVudEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2VhYmxlRkFM U0V2b2xhdGls
ZVRSVUUvbW9kZWwvbWluaW1hbC54c2R9ks1ugzAQhO+V+g7I92KSXioUmkMV TklVKanUq2MW
sOofZDtA3r6LgaSNqhyxZ2a/Hbxa90pGLVgnjM7IIk5IBJqbQugqI5+H/OmF RM4zXTBpNGRE
G7J+fXxY9a5IHa9BsQgTtEuBG4v3tfdNSmnXdTFwKRoHsbEVBVXSZZIs6WaQ kcmjhBaKyT+u
3nAZLLvxctbiwD+67jmoMHRBv3bbfWBB+CE/1e7DQin6jKg5ZbxoGP9mFXKi N4aeqUaCiy+j
PLMV+HemwKES7oNhDVEUihCqMdZH+l/fvRrGBreGMx/6byTzpbEqpY08VULT gDkFoDkOW1Bl
CpBjRozzCb2igAQF2k/rikqHv+LtCacNfBnZnd8kcw6XPTdwKSidj39lcTPU 0x9Qd+MNmknF
vLfiePIwzeQ10xWwo0R9yaSDufsCrGihmGnGw9bgykLeMPq8OLQHXucqH+KT xUw7mjZ7HKmr
mZXewA7vk14fKH7+AFBLBwhxIfeGcAEAAOcCAABQSwMEFAAIAAgAb4WwOgAA AAAAAAAAAAAA
AGEAAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZBTFNF dm9sYXRpbGVU
UlVFL3NyYy9vcmcvZXhhbXBsZXMvTWluaW1hbC9NaW5pbWFsRmFjdG9yeS5q YXZhrVPdToMw
FL6GhHc4JkvUJcADiItmmQkXW4zuBUo5QBVa0hYdMb67pRTN5nax6BU9p+fn +ynxfB74MIeE
iraXrKz0Yozj/YRNztJ8NhziwG8JfSUlgpBlhDvStDWqaM04a0h9E/iBz5pW SD3e05q1CiNs
CnMWEqPVA6FayN5WxhOEizCEDEvGw06hDHNBIQxHONsKIckWri2JswUUQoI2 6UbkWEe2KtXQ
SvHGclRAgEok2tyjrkRuy5HQCrjgIcmUlmYW0JooBaI4nGSxIM9/I7lTeJz1 9H0clRmLS+Qo
DYp8kq3LakaBcY2yIBTBNTligDtttiqYBIKPwPesQJ5TQTFe1qgFN0OUJtzM cPCLsSUaa0+q
6Z2m5x1A9ixm7xBjunne3m+WK7g9LoSx/lsN15QOKZPRV9fW8x9OT6g7yQe/ OL6DyF7Q2GIY
jc5cJtgs1j0shyiJTXD5V37SLjx73zFdelvmHpqLThIcLJr+GtW1w9+BOWS9 uWDqv8xz5M7Z
ddpw95KhRL2fcRw/IY73bQ78L1BLBwgvtHp6kwEAAFAEAABQSwMEFAAIAAgA b4WwOgAAAAAA
AAAAAAAAAGEAAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJs ZUZBTFNFdm9s
YXRpbGVUUlVFL3NyYy9vcmcvZXhhbXBsZXMvTWluaW1hbC9NaW5pbWFsUGFj a2FnZS5qYXZh
tVZdb9owFH0OEv/hrqvUD42kfV0pKqJEQypdBem0PUUmudCsiRPZpi2q+t9n OwlQSAKs9AUS
27HPPffc62OdntZrcApNL05mLJg8iFb6br0f0IOHPf9QPVj1WkK8RzJBiNnE xBcSJSFysx/Q
ICLhRb1WrwVREjORznthkHA0MRrL55ih2W0LwYLRVODFppWdkHC+cdVdCkef bOUhfWk0YIST
gDamHFnDjz1oNNLwnAeE5qiVfda0Ri0YxwyEHI5iH0NTr+oJ8GIqSEA5EM9D zmPGFwtREIhH
f9ETHEQMDBOGHKlIT5+G6VEAzTBoIfEewFOxfGta8n11aoxETJnkcwybliKd RmszhPrphz6R
qMQswcWKppVj0ZQg9dcJueJYnMz83yaeiNksXaw5gseA+pcHmRIO0pkJUmRE oJ/rZDoKAw8C
KpCNiYeQbZcxD/giJB4OeQbhtV4zdAaNLE250iiJ0EyHSzNrlMdorKAzNDxj KHVIJ4C37X4X
LuEgg3eglVQOhCcqlvtB7xMRDV25v8L0IETy3bKen5/Nl9gLTZkmayecn0zd 0L0bdO3eb4U1
KsfF5eoQRUylGrgg1NNqFwvE+4e4Krbe7dBp33ZUpgu1LpvMXPDZRz01JEfE 8UlBTEs9AAJ/
3hqOXq/CgD5WHTLTjU3tDk2MWv0Z6IGmJV/ejtL6/yghpTW9CmG79Wu8fJ2g yHY5PilNgqx9
6P9xOzft4VASf1ZAY979lilUrMgW7dg+OE/gyNZmR2ATeXGcnauGrZk6ApLf JPtVD1zFzEdW
EobrOva16/xync4P1+67dttxBmfnJdHJfj1CpsTOBZt6MlIS5iHzvAaO1lSw JxHsFJfdbTv3
g67b+Xl/68hwznU4ywENUMKW9+HKDajzpvFWiz+TS5HmPxoo08iqgK1TbG5S foa3VNypP4Hl
QrjYnjA1NhfwVsSpkpMl4TzJgrCjrBw0myWF8tnUroRQjWRrvgvDnPcY9fV2 vWdhNJdS5Bbs
XJG0cep85DORfpDJusV0Ir/G5jWcW8d9cf1/J5ffg5mH01S8G1mLvxL9NY4D Ks8OA2nqSFjm
iBXoJU9szE2xUeGKV+YqbfHK2mVfvJgqNcbGwhnvbiwWfvYmJ0EZ14zAIneQ kfUZFqE6YVXB
7ewS9mIT1jjNSM2b6ZJZmDs2c73D7kL2rmYiF94e6C0MdNGWNluKIg7KW9ib +n0Dy3qfh3rt
H1BLBwjYa9y3lwMAAOoPAABQSwMEFAAIAAgAb4WwOgAAAAAAAAAAAAAAAFoA AAB0cmFuc2ll
bnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVUUlVF L3NyYy9vcmcv
ZXhhbXBsZXMvTWluaW1hbC9NeUNsYXNzLmphdmGdU01v1DAQPSdS/sNQKm27 IjFcIawWIVbq
YUUFe0eOM8maOnZkO0tXVf87/ojponYlxCn2jOfNm3kvZLksclhCzdR41Lzf 21W8k78DIXh5
0176AynykbI72iMo3Vd4T4dRoKm2XPKBig9FXuR8GJW2Mc8EHw1WOHTurDRW X742P5HZ8JAk
Bq/KEhrsuSwng7psFYOyjGw+gcZRo0FpqeVKgurA7hEG1aIAFcBgUeOwqpvV 9gifBTWmJs2q
Ji62qJ4aoGyfwcfsGFvtHGynhFC/uOyhQ2on1xioRjDT6GfC9n2smEQsAagF Xz2sBZd3Ly6k
2h4Do9c92t2m3R12bL8ZNtRa/fYdeNouCrsDuDhsBpgzgfxjTRz4rEnqWJPx ifna4Ms6pO9t
1Mp3n4lcXcfKsL947FGipm64JPDUCM6AS4u6owxhLgW8t26JBmYN4aHIs6Bh 5mC+oVuXNEGc
AxUTJqWSOGcGTUqBD/BmslhFwLOuyJJm/nAz2wGp9Kqd9jy/2ZNmwI1cWGAC qX4TIR2Ak1wj
FeIIZq8m0ToeznE6zEShRcM0H4Md/duqSpRJonXGcT611mFTZxb1T6Tndv8h /49nJvSGyP44
Atieyh5pI/DjRUeFwQs4KOF+PR+wenL3FjU/YDtf5+oTE2XBRdl3R9Yp8pLx r67D//8IhCRz
FflvUEsHCCtNv9kCAgAAkAQAAFBLAwQUAAgACABvhbA6AAAAAAAAAAAAAAAA agAAAHRyYW5z
aWVudEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2VhYmxlRkFMU0V2b2xhdGlsZVRS VUUvc3JjL29y
Zy9leGFtcGxlcy9NaW5pbWFsL2ltcGwvTWluaW1hbEZhY3RvcnlJbXBsLmph dmG1VE1v4jAQ
PQeJ/zBFlRqocO6loCLKSkjbD2172dPKOEPwrvMhxylUq/73dfxBIFB1D+0l sZ3xzHtvXiYa
DLodGMA1y4tXyZO1mth9dHhgDs8X8Xm9iLqdgrI/NEHIZUJwS9NCYEnueMZT KgjX21G30+3o
RS6VDWKCFyUSTFd6nUsk85mgZTn6KOph+RuZ+jDs0QL6uGwNjsy/UaZy+br4 L6SFqBKekXm9
eTTrozttCQYmIvLqng2HsER9cViVKIdxzmA4tEpPM6ghYYqZoornGeQrUGuE NI9RwPVy4rBe
R8sJadJhFh8nu0kwQ0kVxr5P1VJwBqyWGhy4Pe6AW6UTlbAvSIOnfQX+djuB IRXoYjOJulJp
wMa4opVQsHKBh5SIvfCuDMH7pIIWq8DQChyvss7P2ij1ToV9AzZQDnUQtII0 6tbJGMLDk753
FfmhQZc6FVncPz1P72dzkqDymoW9tVLFVRRtNhuyzZkg2hKRS9Xrj8CU5ysI j2uejSGrhHBg
g0CiqmR2DG5kPr/VT/NgVLE1hPMtw8KYBv3Kp9pza4Na5EnYRI526VzZDDcn TBKawLfa0MfN
p9q+mW5DxtAb13ngy5p+CqElXVYFypNwPxHFzcMLSsljbBC5IQXMiBLayQZo Xh7ahpuO2cPa
PmbBVxzl4jbs+7YxWqJn6N139/PX7Pv06ekKXJ9snbtXk8LyDQL3C15ZI6m1 zDemoQshMKFi
KpOq/iF3lgl7z7pZdjJc9OASGmj3NEWt6SX0LoCXkOUKKLxQwWMbb1D3Gv98 ndi+5ZZqm7jV
zG3N6Epd4Nh6ufniVHICurCvNcqhXV0zQct7eOJpOGjh4dd+PWh2kZ8JOMZC ItshPmn12/2Y
kzN3j9ZpPi0vo59FOypvEEXHv3S38w9QSwcI8nZRp6YCAACbCAAAUEsDBBQA CAAIAG+FsDoA
AAAAAAAAAAAAAABqAAAAdHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5n ZWFibGVGQUxT
RXZvbGF0aWxlVFJVRS9zcmMvb3JnL2V4YW1wbGVzL01pbmltYWwvaW1wbC9N aW5pbWFsUGFj
a2FnZUltcGwuamF2Yc1Y224aSRB9xpL/oXKRAhEenNc4yYZgSEaKcRbG0e4T amYK6M0wjaYb
OyTyv2/1Za4MOFI20b7Y05eqrqo+daqa3vPnpyfwHF6FYrNL+XKl3thxrzph Jp/60VP90Ts9
2bDwC1siiHTp4Ve23sQovSue8DWLPU7Di9OT0xP6EKmym8KYbyR6uF7Qt0jR G/aVSvl8q/Di
oZ2DmEn54K5P1qaHT9b25dv9JmPrHrn/IxYqke4ufmhzYc7RzbvMudOTXnYZ j87OYI5Lnpxt
JaZnkQjh7MxeTD8BbT6uMVFMcZGAWIBaIaxFhDG8mr9x577qzd94hTpMon1l b5eYYMoURtm1
bucxDyHUJkHVDx0nwK+KFEkoB6+wpy4C309PWsap1jGvWodtbNWMbBkrW5uU 39IEWGDA2sbQ
jV5Dso3tlRaHD1IkAQmMwpdIxZIQjwWuCykZKhWmGMEdVyur5fvbmCdfHsCf NzGi6Q72Zu5h
vjNnuvSxWrNcupn4cMviLXouJps3Y6HwpZGgI1IMFdwx0iAgNP6UdQGXcMuZ mZIaGqHVsrCY
hTWqlYgyF57QRSnQf9qd+y7crXi4AhZLARtMFyJdSyutd3AW828VrLkjuxQJ CpTapok086Wg
ZVucmgWIBOkAMjvaEYxom/R+EhcS8Uevoi5xPGWf4Hg6o9soST2xoXoQkfs5 0+6YNGjJLUW2
7TR3ocooHvrjadAfD4YdAm7rvgreX5A5FiEwFyJGnRPSJ//o2l4TXmKJzdlT ZAV9siQq0IH2
/qtJBIQjmuYOSibPrJxeYMkOBAmlErYbgpaFIIEywo3mGA9gapjFSttZTEKu szglD8gBueBk
M+VUyGKC9dKcliGddNJsVVpluJQUT7ICIRJajowhUfpAcp5ODkp6IgoZNqeD 9oMnFI8G/RHX
+RrvurSDZlOyBZ01mlCsqXkicSUxXhSJf72obLDRJoKtnKZj0dVOFqeaKFot K3aLkAgFO1Tk
LSbl9LQ8xNOCdGxUFzyVyrGLRY05upA0wcHiQC1EmpISFjQuQN0JAhlu5Et3 +6jYmaVaMf+H
IiMtCsj4KqlYlc6C7JbofpwxNCid1AXJDZUnufwz2XTWmmgzxQUSIIXVRHcr TQ1giYFhEXs/
uRVhie8KKNxxMleHlC0Wmow1hnOz1YopE3RnqeM6E/mSyf8F6zURlI2YS7+B IJxQQc4ZK+cw
a8WhbQ2EYTsCxxe1+m5J0fIbUXw7o5GOqwrQrgp09ojZy3jPW6LKVmtSnvO2 Y1mp1evB9Vwx
AhkByBXCMkhL1bXV0MPQZdfceF23U+/rtI8bm1F5J28oCCwNx/2x3wYc0PMS ErxrrCCZ5yWa
VukWi3hYgs7ZwiRAxBTL8K+37fntHYBModbPAZMnZK66WeURiBVqr1j6pWQj tTM8iXioPSD+
D1nyTBMWhCuWLA0UGw5apIjfMNfq8La37xdXU5scrvGky3TdfJYTzqpKf/p7 LMrfViWrZsEo
Cm6DcDVajxitn7+o2dkuxDoVm01yTglyIe2jpoWgsE2R3DQAPv/VPYv1qdox Gb8qM3Vnqqsd
7YL79l3Ctn9Ts1V0WQOXRUfbLPsqaa6XpUJZa1OyNmu5ZdQgRDqrXAeQVSvd EFHB4kV5o5s2
XYWp+j9bmA5e3K3gERzgmnLtcMHJiseFZbwiZI2UZ56q5mEXuY5m4dCp99Vf htYKO2xf/T0b
fOxPpwYFLbeUZ0C7IksNu9s9ozS6nAWfZ8Hgw2x0NRv1g2By/uK3Q8kv9VsH 4CR0++xeiUcf
cnl7WaDOoStv3izE/q/oOlJ26t2Ji1kNZdVoVpFWqoKlzkKiGrM1UvnuX9lX m5mSn6jN5F9N
Vf80GY78v0prVObb+82MQ7LabdA8FCja9CrKl6e6fRdb/bOLYYAD2/pRBOaN qTdI8xuBTY3G
al7KmixfLoCRCrHRYabrs4vlgyhOpMElTz077NAL7fCxGz/uwiN/Ouu/mwaT /iCwI38cDCej
/mDYBRq9H46Hk34wvJxlXVE5K82JRU4eL2ZdMM//rEVwRYuedXrpsaoLkHH6 l6IunHfhxZ4L
2lIyejz1h+PAWPr5+mM/8D8O7drgQ3/8fth/l41vxtNhEBRj/9II3Yz9P2+s p5fDif95aKev
JzQaXu6jgC5CbNMQC0qauJkycizT3EOvt98unp78C1BLBwgqNS6RZgYAANUV AABQSwMEFAAI
AAgAb4WwOgAAAAAAAAAAAAAAAGMAAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRU UlVFY2hhbmdl
YWJsZUZBTFNFdm9sYXRpbGVUUlVFL3NyYy9vcmcvZXhhbXBsZXMvTWluaW1h bC9pbXBsL015
Q2xhc3NJbXBsLmphdmG9Vd9v2jAQfgaJ/+GqTYJWI2lfacZAhWxI7ZhGOmlP kUkO8OrEme1A
UdX/fXZ+kNDBkCa1T9iX891333132BcXrSZcgBPwZCvocqX6+d3eN2TG95Pw vTnYrWZCggey
ROBiaeEjiRKG0rqjMY0Is6i+XrearaY+cKFyp4DRRKKF0UKfuUBrfMOIlKf9 TDRrPJ3/wkBN
DkV+mb74/ZZDvD7hvK1g2CUZZ90uzHFJ424qUXRDHkC3mxMzjMEAwghjRRTl MfAFqBVCxENk
wDOY0HYw6jvz/t0WsvCOPe87tra1rSoDxuHf8Z0k//V0yAVnjG9ovIQFEpUK lEAEVvkx7OVv
UpY/AnAY7T8NGI0fjremrNmQ+W6JynNDb+0FKzdyiVLi8goMem0Fbw3aDm4E xZeshmfH1lkK
mZSpHTuphDJYYoyCaIClXNI5owEEJi3U0gM+Kk2DhFp/q/p2rvDUajay7jQK akJckJQpWBOW
YtmCdlH5waI656fKaoO50Xmq0MozHRVC43gPzaeBRDyGovCoMZTduQhRFDdN WCMRXGlCMARp
dBbAgsaEwUwD1Hrw3JHv/fC9my++e+e7Q8/7fnnlj0djd3h/68FHiFOWD0pF 238Xsw91H1yt
l5pg06aGTBMUnXOdvfH8aggG0zUKQUPcQ5OvFMBZRll2KVEJ1AMUw/5usG6p 0oGZno+f/s3t
cDZ7XdTFGBRNPKLSDK5tgzcdTXvVMGiFUwkRqhUPQXEoCsp0f1DUNTkXEcex 1EtEPyEKtjzV
ISK+xhpQvTMgIuIBqKpbv049E0GtBN9AjBu414ESs1MxnCbGSe/B8WOAiTm8 aetzQvPlAfgZ
VYdqqop1ORl9gDnnDEmsa5WcrbEymP8Wb5tgqdoNVZq+zu5pYW8EROJL2ZRq 8f2Dg9jLHpaS
O9xmw5EhaeeWjY2VlVCDv4O9g/vm5JaE4UTOXvL76uSdWnT5poNPx4bprHDo wdm/Q1n4O9WL
oHM4ztF25ZxUde+68wy2XVuOreYfUEsHCPEaEhP7AgAAagkAAFBLAwQUAAgA CABvhbA6AAAA
AAAAAAAAAAAAbQAAAHRyYW5zaWVudEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2Vh YmxlRkFMU0V2
b2xhdGlsZVRSVUUvc3JjL29yZy9leGFtcGxlcy9NaW5pbWFsL3V0aWwvTWlu aW1hbEFkYXB0
ZXJGYWN0b3J5LmphdmG1VsFu2zgQPcuA/4ELFIgTwPIHxDFSBCmQQ5LFNodc aWlks6VIgaTr
GoX/fYfk0JYUKzHQ9mJZ0pDz5r2ZR82ursYjdsXmhW52RqzWbhHvZ90H4eGn h/KT/zMbjxpe
fOcrYNqscvjJ60aCzR+FEjWX+cYJeT0ejUeibrRxMaiQorGQQ13lha5rrXKl nah2+eeSNw7M
9ZnhT/4iQvyZKzBIpixfeOG02T3go/c2gEIbyO+fl9+gcG8C+/VehYhZovKf 6ZQtYSXUdGPB
TEtdsOk00vqyBjZfLggMIzTz2XLBKm2Yw9e1LkHmIfrBscboH6IEy7hinFah ViUsCgPcwevr
q5cK71kNbq3LsA/wYs0Kya1luurvGvCBKt+iu7UwoChd/42qx+AVKDAIoUwt sVlKUVBaWtBl
ncFPh4kteysG+zUeZYHBjGgqsAYoI3BG7ZbH14MMZ8PlZT3IWcCcIb8OJcZE 1nGH8LuVxvR0
E1Q+grwLAgRlhMLVqoDEdlKqigX+BdiR65MsTy4DmZmo2KQNn93cMLWRkl5n 3Xe9wnN4ePr6
8vnp7v7aB+/xZ98t/z9wG6Ms266x78D3rrCpYIZ/edMgRL6UcGhtt2sOFOkw Wucw8+I39jMM
NSgvklbMUPI4Cs5sIE2BaG/vcYAgeCTmhWVH8wpA2/rFZb2h+UifiOaPMHFC 69vnH2AMmsBR
96XWEjxuS5p/0eYFt5w8E/5wafUB1YUd0FY9dQLh9zQe1G4vS/QgYLLE3srJ JD2nzDnceRuY
XOYrcPeUDhuzB+CYjTaquLThaa/ZvCHYrXBoa27NHcMtYBWmz+lA4rueaP+m b9DcfA3o5jSK
i1hmfMhufIUKtgOxaWA7SmdJ63RWFNzC4y7SSteuzgcSIwsUQ8snl4HrSPb7 iUqo+Ea6O8yX
ZH03EcWcSrQftsyDRdJE0CRzgw1D6v2uag03vGZxy7YpYMuE7GnkUvu3jftD VOcN6kG8UHii
KH3CEDailWC0GicvdfxznC9acRiRk+wy32vtUpDvo7PFA/ri160U6vvAcU/9 NYd68bhj4WY+
w5v9xdmOTW005Nz+JGJWx3He+uNe4WeLFRItc6Xw6ys0vL2OOwqHto2Jqo30 8lEEDzHed72F
o/WK6OJbgXsX3I8ex39uTZshD7st353v6H5li8sk/fBnUuTto2O72xX9Qe10 g6fphB8OS+0h
J+p90X9Sr98m7kxG+o4yzMiezWYnP4LGo/8BUEsHCHfgLA+jAwAA2gwAAFBL AwQUAAgACABv
hbA6AAAAAAAAAAAAAAAAcgAAAHRyYW5zaWVudEZBTFNFZGVyaXZlZFRSVUVj aGFuZ2VhYmxl
RkFMU0V2b2xhdGlsZVRSVUUvc3JjL29yZy9leGFtcGxlcy9NaW5pbWFsL3V0 aWwvTWluaW1h
bFJlc291cmNlRmFjdG9yeUltcGwuamF2Ya2STWrDMBCF1zL4DlPIIglYPkDT ECgUsiiF0B5A
lieOqCwZSW4SSu5eWf5Jm9aBQHf6mTfzviel83kcwRwWXFdHI4qdW7b79OdB OJys80mzSOOo
YvydFQjaFBQPrKwkWvoslCiZpLUT8j6O4kiUlTauLeJSVBYpllvKdVlqFcro 22Z9rRS5NkgN
Wl0bjnTTLW6Q+Co56J4Yd9oc1/4stEh7/LskgQwLoZLaoklyzSFJ2ihedwiL bNm3gK7HIs2W
wKzVXDCHOeyF24HztV009NwYVf677crilfj6TT+1cdzKClRomon9S9SZFBy4 9F7gQvUNF/Dg
vA8Lf919xhEJURA/4dGgb2+BKRDKOqY8s94GtD5U2LZi2ipG0yPjCZALFhJg SEczzjGdBbfE
1hWa6cy/Ijk1L3mT///3vXr5QGNEjmeG4cPwYKjfTv2Ph9qIjmOo8t5q6eAB FO4v+QN4o2lw
iUFXG9UJhgBOkKbjscXRF1BLBwiLkJGIcQEAAOoDAABQSwMEFAAIAAgAb4Ww OgAAAAAAAAAA
AAAAAGsAAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZB TFNFdm9sYXRp
bGVUUlVFL3NyYy9vcmcvZXhhbXBsZXMvTWluaW1hbC91dGlsL01pbmltYWxS ZXNvdXJjZUlt
cGwuamF2YX2R3WoCMRCFr7Ow7zAFL6yw2QeoiFAoCPVGWuhtNjuuofkjyaJS fPcmWZe2Vr3L
JOecmS9Tz2ZlATOYc2OPTnS7sBjq+u9Fvpys2kk61GVhGf9kHYJxHcUDU1ai p2uhhWKS9kHI
p7IoC6GscWEQcSmsR4pqS7lRyugso++b1T0pcuOQHpSgUSDpx/p1g970juMq 1tlZjwgPVQUN
dkJXvUdXtYZDVQ04bzuEebMYvRGvWQDz3nDBArawF2EHIYrOXPQnEXX7P2/p 8Q77WIztXhgP
xh3TxIO7Q40uNR5/s2+k4MBlHAkuzMkFeAhxDg8X/PBVFiTzkxj77DBmemAa hPaB6QhqthnL
nU10UN78KnKbOj0tLXNMQe9ETo27Gxto3F82+U1JMiY5c14hnKasmPuYkYjv LbppquOKySmt
+QR1fcVYFt9QSwcI+Rw4GEUBAADDAgAAUEsDBBQACAAIAG+FsDoAAAAAAAAA AAAAAABlAAAA
dHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0 aWxlVFJVRS9z
cmMvb3JnL2V4YW1wbGVzL01pbmltYWwvdXRpbC9NaW5pbWFsU3dpdGNoLmph dmHtV0tv20YQ
PlOA/sMUDWDKsKierUcTqD4YiNOi0sE9FStyJG5M7hLcZVwiyH/v7IMSKVGy 26ZADjkYWu7O
85tvdseT6+vhAK5hFsuiLvku1Qv3Pelu2M0398kbs5gMBwWLn9gOQZa7CP9i eZGhih644DnL
okrzbDocDAc8L2Sp4SP7xOxm9J4r3T6x6nHGC4UR5ltayxKju2XGlJq+JPXr 5iPGp+aOo7m2
EpMm0R/GY9jgjotxpbAcJzKG8dglvU4RZpvF6pnrOJ1NNgvYyhI07eYywexK ARcpllwzESOk
HEtWxmkdWeV7DaoqTBjKqsQsy+Dz24yLJ/gxkc5o6IMewX5Huo0v1oiW5OKT fEJrgoqS4CJm
Ch8fH01F6Aty1KlMbGTI4hRigxXI7SHOG2tKaVZqLnZAblJ7yGJdsayr4Lxb BSYSKEoZIyZG
rSqsQG/GVr4SVFFgIKQYi4qSLVFVmQauaKWrUmDiInlOOcXJHSxeyLtXFoPo UBkUyWld3io8
wzT/+5tjoxPeoaAwNSYNVatNxmOftlfwJV4v4PNwEFhuBJ4AMYGKiUMSisZw cIk6wfnog6OI
AhtSQDhrwp38UJk0RddNxHn3H5a+hxiXJZIpReWi2ihXmGM0v3a0DsEOduHI QhfwLYTtaGE+
B8MGfxx0z47yjPD+w2r97sPybmqEqQfMXydb6iLV3wgXOsBzUwr0VFSOp9Di 6RS4hppjlhhi
Mu23/yt6zp8NZctLpU/ao+kN2NQUVG9m5uqIXqrGGo4vFeN0f79Y9H0we8GD QIT2jg1HN22t
6fcCvKYA++Zt18DiacG0qxs4WxXTMns5KoQUmnFyQi1FzdNumKaJ+urotHeo 7YJv6W6+/6Wn
nrarAswUemPmDZ459QXgqiqwXNcF3Shz6Ni9OxyFzpKPwy6DlmbE1V1e6JoS +NkdBgluGYG9
JFzDNgC3zXmTStsMOQ1/OpPBd1r+K1pyoR0OniAXaOleDwjb4g0BTSDHd/fD H38u379brW69
TPBQux7I/e8cQr81OjhzRArWTdpzMLa9XOhVPd1spzRyzbOy1ztDMa/q8fY1 tXu2ERpm3kLT
VBfM9BDvd8+b7ixDMGNZkEUzOR3mKmAn7/TVDPPFQw02z9mEPq5eQ611SvMT N8NPjsKMDFLs
KWxwmToxt2WCOJ3LnjmtKcycC+LNmYHhDHsLVrK8Scpo0nBJ3do7eLSp/nUR snPgYZa++G/B
6OR5HL38orap2LBZ9jyoDeL/Bzd8tN8GNW5gU5mCGw8uL8JEW5wo+PqZ1d8i efog/EfcecXs
1bo1mhv1RaZ8gcmkM0QPB38DUEsHCA04uy3lAwAAgA8AAFBLAwQUAAgACABv hbA6AAAAAAAA
AAAAAAAAawAAAHRyYW5zaWVudEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2VhYmxl RkFMU0V2b2xh
dGlsZVRSVUUvc3JjL29yZy9leGFtcGxlcy9NaW5pbWFsL3V0aWwvTWluaW1h bFhNTFByb2Nl
c3Nvci5qYXZhrVNRb5swEH4Gif9wi/pAomJ+QNuoU5VJkZY0avLQt8mFC/Fm bGSbLtnU/74D
jBqaZtWkPQC27+7z9313pJNJFMIErjNdHYwodm7a7dPhQXt4Mc8vmkUahRXP fvACQZuC4Z6X
lUTLFkKJkktWOyGvojAKRVlp4+A7f+btIVvw6jjQVmdSVBYZlltaa4NsturA P840aHVtMmQP
fvFxyb4UHZXHxdeV0Rlaq81J2VtF/ntMLPXObXbCQia5pbdWjgtlYYeyQgMl up3OLTgNFo3g
UvxC4CqHHF/3xANyndUlKmc77z8lCTxhIVRSU15CUUiS6WsMVX4auS1QoeEO 875F9ZMUmafm
BRyLBtw7QrIwOPzdaAtacQGhrjyIVtaZOnOUQWpIo+PKCboN3A69XtaVnKUf nOcfvBEQtAoC
L+Ed8vG4YRoEtqaL47gfGRqEQhDTA5sv15vPy7vZeHzV5A0byLAPM7xr/Inb rBd6jsV3YNTI
LckeTUZt70b7Uo5gKyR2BlpB3rQu+Dv6WfzCG7sOc5ok2Hbr/+/Q7f0zGiNy bNwy2mFGUaDf
7HrtjFDFJfR0mOczhQKdt4m7hnzvpdhCbI4DcHMDqpbSxzuz2Wl563AwKGVV 7WJq2LfZ42a2
XM/vl5eg8OdfPIrHZ3GoVQ//DtR0k8BcbRQMMH2ro/AF0vSd2YrCP1BLBwiD T+nXBQIAABYF
AABQSwMEFAAIAAgAb4WwOgAAAAAAAAAAAAAAAEwAAAB0cmFuc2llbnRGQUxT RWRlcml2ZWRU
UlVFY2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVUUlVFL3dvcmtzcGFjZS90ZXN0 Ly5wcm9qZWN0
s7GvyM1RKEstKs7Mz7NVMtQzUFJIzUvOT8nMS7dVCg1x07VQsrfj5bIpKMrP Sk0ucUktTi7K
LCgBqgaKctrkJeam2pWkFpfY6IOZILHk/Nzc1LwSOxt9GAskCjWgGMzRR+El lWbmpAQXpCZD
5FC5eYklpUWpUG0IDtwIVBcBAFBLBwi8FZ2yfwAAANAAAABQSwMEFAAIAAgA b4WwOgAAAAAA
AAAAAAAAAE4AAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJs ZUZBTFNFdm9s
YXRpbGVUUlVFL3dvcmtzcGFjZS90ZXN0L015Lm1pbmltYWwDAFBLBwgAAAAA AgAAAAAAAABQ
SwECFAAUAAgACABvhbA69KWx0tAAAAB4AQAAPwAAAAAAAAAAAAAAAAAAAAAA dHJhbnNpZW50
RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS8u Y2xhc3NwYXRo
UEsBAhQAFAAIAAgAb4WwOtEpaaEEAQAAyQIAAD0AAAAAAAAAAAAAAAAAPQEA AHRyYW5zaWVu
dEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2VhYmxlRkFMU0V2b2xhdGlsZVRSVUUv LnByb2plY3RQ
SwECFAAUAAgACABvhbA6ptVLiR4FAAAcFwAAcwAAAAAAAAAAAAAAAACsAgAA dHJhbnNpZW50
RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS9U ZXN0IHRyYW5z
aWVuRkFMU0VkZXJpdmVkVFJVRWNoYW5lYWJsZUZBTFNFdm9sYXRpbGVUUlVF LmxhdW5jaFBL
AQIUABQACAAIAG+FsDrDuZSkjAAAAPAAAABFAAAAAAAAAAAAAAAAAGsIAAB0 cmFuc2llbnRG
QUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVUUlVFL2J1 aWxkLnByb3Bl
cnRpZXNQSwECFAAUAAgACABvhbA6JjtZS1YAAABqAAAARgAAAAAAAAAAAAAA AABqCQAAdHJh
bnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0aWxl VFJVRS9wbHVn
aW4ucHJvcGVydGllc1BLAQIUABQACAAIAG+FsDrUZ+eDEQEAAFQCAAA/AAAA AAAAAAAAAAAA
ADQKAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZBTFNF dm9sYXRpbGVU
UlVFL3BsdWdpbi54bWxQSwECFAAUAAgACABvhbA6Iq3nMjABAABIAgAASQAA AAAAAAAAAAAA
AACyCwAAdHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxT RXZvbGF0aWxl
VFJVRS9NRVRBLUlORi9NQU5JRkVTVC5NRlBLAQIUABQACAAIAG+FsDpcL0YV uQEAAOwEAABP
AAAAAAAAAAAAAAAAAFkNAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hh bmdlYWJsZUZB
TFNFdm9sYXRpbGVUUlVFL21vZGVsL2RlZmF1bHQuZWRpdG9yY29uZmlnUEsB AhQAFAAIAAgA
b4WwOvWLdXNGAQAAYQIAAEgAAAAAAAAAAAAAAAAAjw8AAHRyYW5zaWVudEZB TFNFZGVyaXZl
ZFRSVUVjaGFuZ2VhYmxlRkFMU0V2b2xhdGlsZVRSVUUvbW9kZWwvbWluaW1h bC5lY29yZVBL
AQIUABQACAAIAG+FsDqzCelHLwIAAKEFAABLAAAAAAAAAAAAAAAAAEsRAAB0 cmFuc2llbnRG
QUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVUUlVFL21v ZGVsL21pbmlt
YWwuZ2VubW9kZWxQSwECFAAUAAgACABvhbA6cSH3hnABAADnAgAARgAAAAAA AAAAAAAAAADz
EwAAdHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZv bGF0aWxlVFJV
RS9tb2RlbC9taW5pbWFsLnhzZFBLAQIUABQACAAIAG+FsDovtHp6kwEAAFAE AABhAAAAAAAA
AAAAAAAAANcVAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJs ZUZBTFNFdm9s
YXRpbGVUUlVFL3NyYy9vcmcvZXhhbXBsZXMvTWluaW1hbC9NaW5pbWFsRmFj dG9yeS5qYXZh
UEsBAhQAFAAIAAgAb4WwOthr3LeXAwAA6g8AAGEAAAAAAAAAAAAAAAAA+RcA AHRyYW5zaWVu
dEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2VhYmxlRkFMU0V2b2xhdGlsZVRSVUUv c3JjL29yZy9l
eGFtcGxlcy9NaW5pbWFsL01pbmltYWxQYWNrYWdlLmphdmFQSwECFAAUAAgA CABvhbA6K02/
2QICAACQBAAAWgAAAAAAAAAAAAAAAAAfHAAAdHJhbnNpZW50RkFMU0VkZXJp dmVkVFJVRWNo
YW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS9zcmMvb3JnL2V4YW1wbGVzL01p bmltYWwvTXlD
bGFzcy5qYXZhUEsBAhQAFAAIAAgAb4WwOvJ2UaemAgAAmwgAAGoAAAAAAAAA AAAAAAAAqR4A
AHRyYW5zaWVudEZBTFNFZGVyaXZlZFRSVUVjaGFuZ2VhYmxlRkFMU0V2b2xh dGlsZVRSVUUv
c3JjL29yZy9leGFtcGxlcy9NaW5pbWFsL2ltcGwvTWluaW1hbEZhY3RvcnlJ bXBsLmphdmFQ
SwECFAAUAAgACABvhbA6KjUukWYGAADVFQAAagAAAAAAAAAAAAAAAADnIQAA dHJhbnNpZW50
RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS9z cmMvb3JnL2V4
YW1wbGVzL01pbmltYWwvaW1wbC9NaW5pbWFsUGFja2FnZUltcGwuamF2YVBL AQIUABQACAAI
AG+FsDrxGhIT+wIAAGoJAABjAAAAAAAAAAAAAAAAAOUoAAB0cmFuc2llbnRG QUxTRWRlcml2
ZWRUUlVFY2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVUUlVFL3NyYy9vcmcvZXhh bXBsZXMvTWlu
aW1hbC9pbXBsL015Q2xhc3NJbXBsLmphdmFQSwECFAAUAAgACABvhbA6d+As D6MDAADaDAAA
bQAAAAAAAAAAAAAAAABxLAAAdHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNo YW5nZWFibGVG
QUxTRXZvbGF0aWxlVFJVRS9zcmMvb3JnL2V4YW1wbGVzL01pbmltYWwvdXRp bC9NaW5pbWFs
QWRhcHRlckZhY3RvcnkuamF2YVBLAQIUABQACAAIAG+FsDqLkJGIcQEAAOoD AAByAAAAAAAA
AAAAAAAAAK8wAAB0cmFuc2llbnRGQUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJs ZUZBTFNFdm9s
YXRpbGVUUlVFL3NyYy9vcmcvZXhhbXBsZXMvTWluaW1hbC91dGlsL01pbmlt YWxSZXNvdXJj
ZUZhY3RvcnlJbXBsLmphdmFQSwECFAAUAAgACABvhbA6+Rw4GEUBAADDAgAA awAAAAAAAAAA
AAAAAADAMgAAdHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVG QUxTRXZvbGF0
aWxlVFJVRS9zcmMvb3JnL2V4YW1wbGVzL01pbmltYWwvdXRpbC9NaW5pbWFs UmVzb3VyY2VJ
bXBsLmphdmFQSwECFAAUAAgACABvhbA6DTi7LeUDAACADwAAZQAAAAAAAAAA AAAAAACeNAAA
dHJhbnNpZW50RkFMU0VkZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0 aWxlVFJVRS9z
cmMvb3JnL2V4YW1wbGVzL01pbmltYWwvdXRpbC9NaW5pbWFsU3dpdGNoLmph dmFQSwECFAAU
AAgACABvhbA6g0/p1wUCAAAWBQAAawAAAAAAAAAAAAAAAAAWOQAAdHJhbnNp ZW50RkFMU0Vk
ZXJpdmVkVFJVRWNoYW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS9zcmMvb3Jn L2V4YW1wbGVz
L01pbmltYWwvdXRpbC9NaW5pbWFsWE1MUHJvY2Vzc29yLmphdmFQSwECFAAU AAgACABvhbA6
vBWdsn8AAADQAAAATAAAAAAAAAAAAAAAAAC0OwAAdHJhbnNpZW50RkFMU0Vk ZXJpdmVkVFJV
RWNoYW5nZWFibGVGQUxTRXZvbGF0aWxlVFJVRS93b3Jrc3BhY2UvdGVzdC8u cHJvamVjdFBL
AQIUABQACAAIAG+FsDoAAAAAAgAAAAAAAABOAAAAAAAAAAAAAAAAAK08AAB0 cmFuc2llbnRG
QUxTRWRlcml2ZWRUUlVFY2hhbmdlYWJsZUZBTFNFdm9sYXRpbGVUUlVFL3dv cmtzcGFjZS90
ZXN0L015Lm1pbmltYWxQSwUGAAAAABgAGACBDAAAKz0AAAAA
--------------070009020406080104060606--
Re: derived, volatile, not changeable, BUT NOT transient: error on resource creation [message #430356 is a reply to message #430354] Sat, 16 May 2009 16:13 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
Philipp,

Comments below.

Philipp Kutter wrote:
> Hi.
> We have tons of models where a feature is
> -derived
> -volatile
> -not-changeable
>
> BUT we want to persist it, and thus it is NOT transient.
It sounds like perhaps you should be suppressing the setter rather than
making it transient because obviously when it's deserialized, it needs
to be set into the instance somehow...
>
> Take the following model (ecore is in the attached zip):
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
> xmlns:minimal="http://www.xocl.org/Minimal"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="minimal"
> ecore:package="org.examples.Minimal"
> targetNamespace="http://www.xocl.org/Minimal">
> <xsd:import namespace="http://www.eclipse.org/emf/2002/Ecore"
> schemaLocation="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.xsd "/>
> <xsd:element ecore:ignore="true" name="MyClass"
> type="minimal:MyClass"/>
>
> <xsd:complexType name="MyClass">
> <xsd:attribute
> ecore:changeable="false"
> ecore:derived="true"
> ecore:transient="false"
> ecore:volatile="true"
> name="tFdTvTchFmFattr01"
> type="ecore:EString"/>
> </xsd:complexType>
>
> </xsd:schema>
>
> and I want to create the following resource:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <minimal:MyClass
> xmlns:minimal="http://www.xocl.org/Minimal"
> tFdTvTchFmFattr01="My Calculated String Value"
> />
>
> Then, when I reopen the resource, because of changeable=fales, the
> value of tFdTvTchFmFattr01 should not be set.
If it's in the resource EMF will try to set it.
>
> BUT, instead, already when I try to create the resource with the
> generated editor I get:
>
> XMIException: org.xml.sax.SAXParseException: Premature end of file.
> (platform:/resource/test/My.minimal)
That's a SAX error though, so I wonder if you're showing the actual
resource here?
>
> The full error is below.
>
> Any idea?
>
> Best, Philipp
>
> org.eclipse.emf.ecore.xmi.XMIException: org.xml.sax.SAXParseException:
> Premature end of file. (platform:/resource/test/My.minimal, 1, 1)
> at
> org.eclipse.emf.ecore.xmi.impl.XMLHandler.toXMIException(XML Handler.java:675)
>
> at
> org.eclipse.emf.ecore.xmi.impl.XMLHandler.fatalError(XMLHand ler.java:698)
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper. fatalError(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.rep ortError(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFat alError(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerIm pl$PrologDriver.next(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerIm pl.next(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentS cannerImpl.scanDocument(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuratio n.parse(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuratio n.parse(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(U nknown
> Source)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser .parse(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSA XParser.parse(Unknown
> Source)
> at javax.xml.parsers.SAXParser.parse(Unknown Source)
> at
> org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl. java:181)
> at
> org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLRes ourceImpl.java:180)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(Resour ceImpl.java:1494)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(Resour ceImpl.java:1282)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:255)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:270)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:397)
>
> at
> org.examples.Minimal.presentation.MinimalEditor.createModel( MinimalEditor.java:945)
>
> at
> org.examples.Minimal.presentation.MinimalEditor.createPages( MinimalEditor.java:1002)
>
> at
> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:357)
>
> at
> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:659)
>
> at
> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:459)
>
> at
> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:595)
>
> at
> org.eclipse.ui.internal.EditorReference.getPart(EditorRefere nce.java:821)
> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:31 3)
> at
> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:180)
>
> at
> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:270)
>
> at
> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>
> at
> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:473)
>
> at
> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1256)
>
> at
> org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1209)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:16 08)
> at org.eclipse.ui.internal.PartStack.add(PartStack.java:499)
> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103 )
> at org.eclipse.ui.internal.PartStack.add(PartStack.java:485)
> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112 )
> at
> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:63)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:225)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:213)
>
> at
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:778)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:677)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:638)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2854)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2762)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag e.java:2754)
> at
> org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2705)
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2701)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2685)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2668)
> at
> org.examples.Minimal.presentation.MinimalModelWizard.perform Finish(MinimalModelWizard.java:294)
>
> at
> org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDi alog.java:752)
>
> at
> org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDi alog.java:373)
>
> at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.jav a:624)
> at
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:228)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
> at
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3880)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3473)
> at org.eclipse.jface.window.Window.runEventLoop(Window.java:825 )
> at org.eclipse.jface.window.Window.open(Window.java:801)
> at
> org.eclipse.ui.internal.handlers.WizardHandler$New.executeHa ndler(WizardHandler.java:253)
>
> at
> org.eclipse.ui.internal.handlers.WizardHandler.execute(Wizar dHandler.java:273)
>
> at
> org.eclipse.ui.internal.handlers.HandlerProxy.execute(Handle rProxy.java:294)
>
> at
> org.eclipse.core.commands.Command.executeWithChecks(Command. java:476)
> at
> org.eclipse.core.commands.ParameterizedCommand.executeWithCh ecks(ParameterizedCommand.java:508)
>
> at
> org.eclipse.ui.internal.handlers.HandlerService.executeComma nd(HandlerService.java:169)
>
> at
> org.eclipse.ui.internal.handlers.SlaveHandlerService.execute Command(SlaveHandlerService.java:241)
>
> at
> org.eclipse.ui.internal.actions.CommandAction.runWithEvent(C ommandAction.java:157)
>
> at
> org.eclipse.jface.action.ActionContributionItem.handleWidget Selection(ActionContributionItem.java:584)
>
> at
> org.eclipse.jface.action.ActionContributionItem.access$2(Act ionContributionItem.java:501)
>
> at
> org.eclipse.jface.action.ActionContributionItem$5.handleEven t(ActionContributionItem.java:411)
>
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
> at
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3880)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3473)
> at
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2405)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 21)
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
>
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:493)
>
> at
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:194)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:368)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 559)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
> Caused by: org.xml.sax.SAXParseException: Premature end of file.
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper. createSAXParseException(Unknown
> Source)
> ... 99 more


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: derived, volatile, not changeable, BUT NOT transient: error on resource creation [message #430358 is a reply to message #430356] Sat, 16 May 2009 16:48 Go to previous messageGo to next message
Philipp Kutter is currently offline Philipp KutterFriend
Messages: 306
Registered: July 2009
Senior Member
Hi, Ed.

>> We have tons of models where a feature is
>> -derived
>> -volatile
>> -not-changeable
>>
>> BUT we want to persist it, and thus it is NOT transient.
> It sounds like perhaps you should be suppressing the setter rather than
> making it transient because obviously when it's deserialized, it needs
> to be set into the instance somehow...

I remember from the past how this works. Changeable only suppressed the
setter in the interface, while the implementation class still had it. True?

Why does it need to be set, when it is deserialized from a derived,
non-changeable, volatile feature?

And why would it not need to be deserialized, if the setter is suppressed?
>>
>> Take the following model (ecore is in the attached zip):
>> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
>> <xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
....
>> </xsd:schema>
>>
>> and I want to create the following resource:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <minimal:MyClass
>> xmlns:minimal="http://www.xocl.org/Minimal"
>> tFdTvTchFmFattr01="My Calculated String Value"
>> />
>>
>> Then, when I reopen the resource, because of changeable=fales, the
>> value of tFdTvTchFmFattr01 should not be set.
> If it's in the resource EMF will try to set it.
>>
>> BUT, instead, already when I try to create the resource with the
>> generated editor I get:
>>
>> XMIException: org.xml.sax.SAXParseException: Premature end of file.
>> (platform:/resource/test/My.minimal)
> That's a SAX error though, so I wonder if you're showing the actual
> resource here?

No, as I wrote, I show the resource I would like to see.

The exception is triggered on the creation of the resource. But you are
right, there is as well a resource resulting from this, it is EMPTY.


I am looking forward to your answers to the questions above,

Regards, Philipp
Re: derived, volatile, not changeable, BUT NOT transient: error on resource creation [message #430359 is a reply to message #430358] Sat, 16 May 2009 22:11 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
Philipp,

Comments below.

Philipp Kutter wrote:
> Hi, Ed.
>
>>> We have tons of models where a feature is
>>> -derived
>>> -volatile
>>> -not-changeable
>>>
>>> BUT we want to persist it, and thus it is NOT transient.
>> It sounds like perhaps you should be suppressing the setter rather
>> than making it transient because obviously when it's deserialized, it
>> needs to be set into the instance somehow...
>
> I remember from the past how this works. Changeable only suppressed
> the setter in the interface, while the implementation class still had
> it. True?
No, although the lists returned from the getter never did enforced
read-only access, for single-valued features it's always been impossible
to set the value.
>
> Why does it need to be set, when it is deserialized from a derived,
> non-changeable, volatile feature?
If there is a serialized value the deserializer will always attempt to
set it.
>
> And why would it not need to be deserialized, if the setter is
> suppressed?
If the setter is suppressed, the generated Impl will still have a setter
and reflectively you'll still be able to set it. It's just that via the
generated API there will be no public setter available so it will be
"hard" to set it.
>>>
>>> Take the following model (ecore is in the attached zip):
>>> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
>>> <xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
> ...
>>> </xsd:schema>
>>>
>>> and I want to create the following resource:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <minimal:MyClass
>>> xmlns:minimal="http://www.xocl.org/Minimal"
>>> tFdTvTchFmFattr01="My Calculated String Value"
>>> />
>>>
>>> Then, when I reopen the resource, because of changeable=fales, the
>>> value of tFdTvTchFmFattr01 should not be set.
>> If it's in the resource EMF will try to set it.
>>>
>>> BUT, instead, already when I try to create the resource with the
>>> generated editor I get:
>>>
>>> XMIException: org.xml.sax.SAXParseException: Premature end of file.
>>> (platform:/resource/test/My.minimal)
>> That's a SAX error though, so I wonder if you're showing the actual
>> resource here?
>
> No, as I wrote, I show the resource I would like to see.
I'm not sure that EMF's reaction to the SAX calls could make SAX thing
the XML ended prematurely....
>
> The exception is triggered on the creation of the resource. But you
> are right, there is as well a resource resulting from this, it is EMPTY.
I'd have to see this in action. It's possible that there's a bug but
the exception seems a basic SAX one reacting to the actual premature end
of the XML itself...
>
>
> I am looking forward to your answers to the questions above,
>
> Regards, Philipp


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: derived, volatile, not changeable, BUT NOT transient: error on resource creation [message #430362 is a reply to message #430359] Sun, 17 May 2009 12:14 Go to previous messageGo to next message
Philipp Kutter is currently offline Philipp KutterFriend
Messages: 306
Registered: July 2009
Senior Member
>> Why does it need to be set, when it is deserialized from a derived,
>> non-changeable, volatile feature?
> If there is a serialized value the deserializer will always attempt to
> set it.

Understood. Thus if I want to support derived, volatile, non-transient
features, which means the feature is serialized, I need to make sure
that the setter is doing something useful. As there are many useful
things one could think of (ignore the content, keep it as history,
e.t.c., I would not argue that you must generate something else than an
exception here... although, I might be tempted to file an enhancement
bugzilla...)

Would you agree that derived, volatile, non-transient features are a
conceptually sound way to have derived features been serialized?

The answer is important to me, as I want to continue these tests to more
advanced use cases. Agreement that this is a useful use case is thus
important to me ;-)

>>>> BUT, instead, already when I try to create the resource with the
>>>> generated editor I get:
>>>>
>>>> XMIException: org.xml.sax.SAXParseException: Premature end of file.
>>>> (platform:/resource/test/My.minimal)
>>> That's a SAX error though, so I wonder if you're showing the actual
>>> resource here?
>>
>> No, as I wrote, I show the resource I would like to see.
> I'm not sure that EMF's reaction to the SAX calls could make SAX thing
> the XML ended prematurely....

I will further test in which configurations the attached minimal ECore
will trigger a SAY Exception and file a bug report. Do you agree?

Regards, Philipp
Re: derived, volatile, not changeable, BUT NOT transient: error on resource creation [message #430363 is a reply to message #430362] Sun, 17 May 2009 13:33 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
Philipp,

Comments below.

Philipp Kutter wrote:
>
>>> Why does it need to be set, when it is deserialized from a derived,
>>> non-changeable, volatile feature?
>> If there is a serialized value the deserializer will always attempt
>> to set it.
>
> Understood. Thus if I want to support derived, volatile, non-transient
> features, which means the feature is serialized, I need to make sure
> that the setter is doing something useful.
Yes, if you're going to save the data, you need to away to accept in on
the way back in.
> As there are many useful things one could think of (ignore the
> content, keep it as history, e.t.c., I would not argue that you must
> generate something else than an exception here... although, I might be
> tempted to file an enhancement bugzilla...)
I'd not be likely to make such enhancements.
>
> Would you agree that derived, volatile, non-transient features are a
> conceptually sound way to have derived features been serialized?
It seems odd to have a derived thing be serialized.
>
> The answer is important to me, as I want to continue these tests to more
> advanced use cases. Agreement that this is a useful use case is thus
> important to me ;-)
It seems odd. Why serialize something that's derived. For example,
eAllSuperTypes is derived from eSuperTypes and it would be rather
useless (worse than useless, because it could lead to inconsistency) to
serialize it.
>
>>>>> BUT, instead, already when I try to create the resource with the
>>>>> generated editor I get:
>>>>>
>>>>> XMIException: org.xml.sax.SAXParseException: Premature end of
>>>>> file. (platform:/resource/test/My.minimal)
>>>> That's a SAX error though, so I wonder if you're showing the actual
>>>> resource here?
>>>
>>> No, as I wrote, I show the resource I would like to see.
>> I'm not sure that EMF's reaction to the SAX calls could make SAX
>> thing the XML ended prematurely....
>
> I will further test in which configurations the attached minimal ECore
> will trigger a SAY Exception and file a bug report. Do you agree?
Yes. I can't imagine how SAX will report a premature end unless the XML
actually ends prematurely.
>
> Regards, Philipp


Ed Merks
Professional Support: https://www.macromodeling.com/
Previous Topic:invariant vs. constraint
Next Topic:[CDO] Security
Goto Forum:
  


Current Time: Fri Apr 26 12:16:36 GMT 2024

Powered by FUDForum. Page generated in 0.03685 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top