KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > emf > ecore > sdo > impl > EDataGraphImpl


1 /**
2  * <copyright>
3  *
4  * Copyright (c) 2003-2004 IBM Corporation and others.
5  * All rights reserved. This program and the accompanying materials
6  * are made available under the terms of the Eclipse Public License v1.0
7  * which accompanies this distribution, and is available at
8  * http://www.eclipse.org/legal/epl-v10.html
9  *
10  * Contributors:
11  * IBM - Initial API and implementation
12  *
13  * </copyright>
14  *
15  * $Id: EDataGraphImpl.java,v 1.7 2005/06/08 06:24:25 nickb Exp $
16  */

17 package org.eclipse.emf.ecore.sdo.impl;
18
19
20 import java.io.ByteArrayInputStream JavaDoc;
21 import java.io.ByteArrayOutputStream JavaDoc;
22 import java.io.Externalizable JavaDoc;
23 import java.io.IOException JavaDoc;
24 import java.io.ObjectInput JavaDoc;
25 import java.io.ObjectOutput JavaDoc;
26 import java.io.Serializable JavaDoc;
27 import java.util.Iterator JavaDoc;
28 import java.util.HashMap JavaDoc;
29 import java.util.List JavaDoc;
30 import java.util.Map JavaDoc;
31
32 import org.eclipse.emf.common.notify.Adapter;
33 import org.eclipse.emf.common.notify.Notification;
34 import org.eclipse.emf.common.notify.NotificationChain;
35 import org.eclipse.emf.common.notify.Notifier;
36 import org.eclipse.emf.common.notify.impl.AdapterImpl;
37 import org.eclipse.emf.common.util.URI;
38 import org.eclipse.emf.ecore.EClass;
39 import org.eclipse.emf.ecore.EClassifier;
40 import org.eclipse.emf.ecore.EObject;
41 import org.eclipse.emf.ecore.EPackage;
42 import org.eclipse.emf.ecore.EStructuralFeature;
43 import org.eclipse.emf.ecore.InternalEObject;
44 import org.eclipse.emf.ecore.impl.ENotificationImpl;
45 import org.eclipse.emf.ecore.impl.EObjectImpl;
46 import org.eclipse.emf.ecore.resource.Resource;
47 import org.eclipse.emf.ecore.resource.ResourceSet;
48 import org.eclipse.emf.ecore.sdo.EChangeSummary;
49 import org.eclipse.emf.ecore.sdo.EDataGraph;
50 import org.eclipse.emf.ecore.sdo.EDataObject;
51 import org.eclipse.emf.ecore.sdo.EType;
52 import org.eclipse.emf.ecore.sdo.SDOFactory;
53 import org.eclipse.emf.ecore.sdo.SDOPackage;
54 import org.eclipse.emf.ecore.sdo.util.SDOUtil;
55 import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
56 import org.eclipse.emf.ecore.util.EcoreUtil;
57 import org.eclipse.emf.ecore.util.ExtendedMetaData;
58
59 import commonj.sdo.ChangeSummary;
60 import commonj.sdo.DataGraph;
61 import commonj.sdo.DataObject;
62 import commonj.sdo.Type;
63
64
65 /**
66  * <!-- begin-user-doc -->
67  * An implementation of the model object '<em><b>EData Graph</b></em>'.
68  * @extends DataGraph, Adapter, EDataGraph.Internal, Serializable
69  * <!-- end-user-doc -->
70  * <p>
71  * The following features are implemented:
72  * <ul>
73  * <li>{@link org.eclipse.emf.ecore.sdo.impl.EDataGraphImpl#getRootObject <em>Root Object</em>}</li>
74  * <li>{@link org.eclipse.emf.ecore.sdo.impl.EDataGraphImpl#getChangeSummary <em>Change Summary</em>}</li>
75  * <li>{@link org.eclipse.emf.ecore.sdo.impl.EDataGraphImpl#getResourceSet <em>Resource Set</em>}</li>
76  * <li>{@link org.eclipse.emf.ecore.sdo.impl.EDataGraphImpl#getRootResource <em>Root Resource</em>}</li>
77  * <li>{@link org.eclipse.emf.ecore.sdo.impl.EDataGraphImpl#getEChangeSummary <em>EChange Summary</em>}</li>
78  * <li>{@link org.eclipse.emf.ecore.sdo.impl.EDataGraphImpl#getERootObject <em>ERoot Object</em>}</li>
79  * </ul>
80  * </p>
81  *
82  * @generated
83  */

84 public class EDataGraphImpl extends EObjectImpl implements EDataGraph, DataGraph, Adapter, EDataGraph.Internal, Serializable JavaDoc
85 {
86   /**
87    * The default value of the '{@link #getResourceSet() <em>Resource Set</em>}' attribute.
88    * <!-- begin-user-doc -->
89    * <!-- end-user-doc -->
90    * @see #getResourceSet()
91    * @generated
92    * @ordered
93    */

94   protected static final ResourceSet RESOURCE_SET_EDEFAULT = null;
95
96   /**
97    * The cached value of the '{@link #getResourceSet() <em>Resource Set</em>}' attribute.
98    * <!-- begin-user-doc -->
99    * <!-- end-user-doc -->
100    * @see #getResourceSet()
101    * @generated
102    * @ordered
103    */

104   protected ResourceSet resourceSet = RESOURCE_SET_EDEFAULT;
105
106   /**
107    * The default value of the '{@link #getRootResource() <em>Root Resource</em>}' attribute.
108    * <!-- begin-user-doc -->
109    * <!-- end-user-doc -->
110    * @see #getRootResource()
111    * @generated
112    * @ordered
113    */

114   protected static final Resource ROOT_RESOURCE_EDEFAULT = null;
115
116   /**
117    * The cached value of the '{@link #getEChangeSummary() <em>EChange Summary</em>}' reference.
118    * <!-- begin-user-doc -->
119    * <!-- end-user-doc -->
120    * @see #getEChangeSummary()
121    * @generated
122    * @ordered
123    */

124   protected EChangeSummary eChangeSummary = null;
125
126   /**
127    * The cached value of the '{@link #getERootObject() <em>ERoot Object</em>}' reference.
128    * <!-- begin-user-doc -->
129    * <!-- end-user-doc -->
130    * @see #getERootObject()
131    * @generated
132    * @ordered
133    */

134   protected EObject eRootObject = null;
135
136   /**
137    * The cached extended metadata to wrap the resource set's package registry.
138    */

139   protected ExtendedMetaData extendedMetaData;
140
141   /**
142    * <!-- begin-user-doc -->
143    * <!-- end-user-doc -->
144    * @generated
145    */

146   protected EDataGraphImpl()
147   {
148     super();
149   }
150
151   /**
152    * <!-- begin-user-doc -->
153    * <!-- end-user-doc -->
154    * @generated
155    */

156   protected EClass eStaticClass()
157   {
158     return SDOPackage.eINSTANCE.getEDataGraph();
159   }
160
161   public boolean isAdapterForType(Object JavaDoc type)
162   {
163     return type == EDataGraph.class;
164   }
165
166   public void notifyChanged(Notification msg)
167   {
168   }
169
170   public Notifier getTarget()
171   {
172     return getResourceSet();
173   }
174
175   public void setTarget(Notifier newTarget)
176   {
177   }
178
179   protected ExtendedMetaData getExtendedMetaData()
180   {
181     if (extendedMetaData == null)
182     {
183       getResourceSet();
184     }
185     return extendedMetaData;
186   }
187
188   /**
189    * <!-- begin-user-doc -->
190    * <!-- end-user-doc -->
191    * @generated NOT
192    */

193   public ResourceSet getResourceSet()
194   {
195     if (resourceSet == null)
196     {
197       if (eResource() != null)
198       {
199         resourceSet = eResource().getResourceSet();
200       }
201       if (resourceSet == null)
202       {
203         resourceSet = createResourceSet();
204       }
205       initializeResourceSet(resourceSet);
206     }
207     return resourceSet;
208   }
209
210   protected ResourceSet createResourceSet()
211   {
212     return SDOUtil.createResourceSet();
213   }
214
215   protected Resource createRootResource()
216   {
217     Resource result = resourceSet.createResource(URI.createURI("root.xml"));
218     result.getContents().clear();
219     return result;
220   }
221
222   protected Resource createChangeSummaryResource()
223   {
224     Resource result = resourceSet.createResource(URI.createURI("change-summary.xml"));
225     result.getContents().clear();
226     return result;
227   }
228
229   protected void initializeResourceSet(ResourceSet resourceSet)
230   {
231     if (resourceSet == null)
232     {
233       extendedMetaData = null;
234     }
235     else
236     {
237       extendedMetaData = new BasicExtendedMetaData(resourceSet.getPackageRegistry());
238       resourceSet.eAdapters().add(this);
239     }
240   }
241
242   /**
243    * <!-- begin-user-doc -->
244    * <!-- end-user-doc -->
245    * @generated
246    */

247   public void setResourceSetGen(ResourceSet newResourceSet)
248   {
249     ResourceSet oldResourceSet = resourceSet;
250     resourceSet = newResourceSet;
251     if (eNotificationRequired())
252       eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.EDATA_GRAPH__RESOURCE_SET, oldResourceSet, resourceSet));
253   }
254
255   public void setResourceSet(ResourceSet newResourceSet)
256   {
257     if (resourceSet != null)
258     {
259       resourceSet.eAdapters().remove(this);
260     }
261     setResourceSetGen(newResourceSet);
262     initializeResourceSet(newResourceSet);
263   }
264
265   /**
266    * <!-- begin-user-doc -->
267    * <!-- end-user-doc -->
268    * @generated NOT
269    */

270   public Resource getRootResource()
271   {
272     if (eRootObject == null)
273     {
274       Resource result = getResourceSet().getResource(URI.createURI("root.xml"), false);
275       if (result == null)
276       {
277         result = createRootResource();
278       }
279
280       return result;
281     }
282     else
283     {
284       return eRootObject.eResource();
285     }
286   }
287
288   public Resource getDataGraphResource()
289   {
290     Resource result = eResource();
291     if (result == null)
292     {
293       result = getResourceSet().createResource(URI.createURI("all.datagraph"));
294       result.getContents().add(this);
295     }
296     return result;
297   }
298
299   /**
300    * <!-- begin-user-doc -->
301    * <!-- end-user-doc -->
302    * @generated
303    */

304   public EChangeSummary getEChangeSummary()
305   {
306     return eChangeSummary;
307   }
308
309   /**
310    * <!-- begin-user-doc -->
311    * <!-- end-user-doc -->
312    * @generated
313    */

314   public NotificationChain basicSetEChangeSummary(EChangeSummary newEChangeSummary, NotificationChain msgs)
315   {
316     EChangeSummary oldEChangeSummary = eChangeSummary;
317     eChangeSummary = newEChangeSummary;
318     if (eNotificationRequired())
319     {
320       ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY, oldEChangeSummary, newEChangeSummary);
321       if (msgs == null) msgs = notification; else msgs.add(notification);
322     }
323     return msgs;
324   }
325
326   /**
327    * <!-- begin-user-doc -->
328    * <!-- end-user-doc -->
329    * @generated
330    */

331   public void setEChangeSummary(EChangeSummary newEChangeSummary)
332   {
333     if (newEChangeSummary != eChangeSummary)
334     {
335       NotificationChain msgs = null;
336       if (eChangeSummary != null)
337         msgs = ((InternalEObject)eChangeSummary).eInverseRemove(this, SDOPackage.ECHANGE_SUMMARY__EDATA_GRAPH, EChangeSummary.class, msgs);
338       if (newEChangeSummary != null)
339         msgs = ((InternalEObject)newEChangeSummary).eInverseAdd(this, SDOPackage.ECHANGE_SUMMARY__EDATA_GRAPH, EChangeSummary.class, msgs);
340       msgs = basicSetEChangeSummary(newEChangeSummary, msgs);
341       if (msgs != null) msgs.dispatch();
342     }
343     else if (eNotificationRequired())
344       eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY, newEChangeSummary, newEChangeSummary));
345   }
346
347   /**
348    * <!-- begin-user-doc -->
349    * <!-- end-user-doc -->
350    * @generated
351    */

352   public EObject getERootObject()
353   {
354     return eRootObject;
355   }
356
357   /**
358    * <!-- begin-user-doc -->
359    * <!-- end-user-doc -->
360    * @generated
361    */

362   public void setERootObjectGen(EObject newERootObject)
363   {
364     EObject oldERootObject = eRootObject;
365     eRootObject = newERootObject;
366     if (eNotificationRequired())
367       eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.EDATA_GRAPH__EROOT_OBJECT, oldERootObject, eRootObject));
368   }
369
370   public void setERootObject(EObject newERootObject)
371   {
372     // If there is a resource set already...
373
//
374
if (resourceSet != null)
375     {
376       // Get the root resource and if there's a root object in it already, clear it.
377
// Then set the root object and add it to the root resource.
378
//
379
List JavaDoc contents = getRootResource().getContents();
380       if (eRootObject != null)
381       {
382         contents.clear();
383       }
384       setERootObjectGen(newERootObject);
385       if (newERootObject != null)
386       {
387         contents.add(newERootObject);
388       }
389     }
390     else
391     {
392       // Set the root object and see if it has a resource we can reuse.
393
//
394
setERootObjectGen(newERootObject);
395       Resource rootResource = newERootObject.eResource();
396       if (rootResource != null)
397       {
398         // If there is no resource set
399
//
400
if (rootResource.getResourceSet() == null)
401         {
402           // Demand create one and add this resource to it.
403
//
404
getResourceSet().getResources().add(rootResource);
405         }
406         else
407         {
408           // Reuse the existing resource set.
409
//
410
setResourceSet(rootResource.getResourceSet());
411         }
412       }
413       else
414       {
415         // Demand create the resource set and the root resource, and add to it's contents.
416
//
417
getResourceSet();
418         createRootResource().getContents().add(newERootObject);
419       }
420     }
421   }
422
423   /**
424    * <!-- begin-user-doc -->
425    * <!-- end-user-doc -->
426    * @generated NOT
427    */

428   public EClassifier getEClassifier(String JavaDoc namespaceURI, String JavaDoc typeName)
429   {
430     ExtendedMetaData extendedMetaData = getExtendedMetaData();
431     EPackage ePackage = extendedMetaData.getPackage(namespaceURI);
432     if (ePackage != null)
433     {
434       EClassifier eClassifier = ePackage.getEClassifier(typeName);
435       if (eClassifier == null)
436       {
437         eClassifier = extendedMetaData.getType(ePackage, typeName);
438       }
439       return eClassifier;
440     }
441     else
442     {
443       return null;
444     }
445   }
446
447   /**
448    * <!-- begin-user-doc -->
449    * <!-- end-user-doc -->
450    * @generated NOT
451    */

452   public Type getType(String JavaDoc namespaceURI, String JavaDoc typeName)
453   {
454     return getEType(namespaceURI, typeName);
455   }
456
457   public EType getEType(String JavaDoc namespaceURI, String JavaDoc typeName)
458   {
459     EClassifier eClassifier = getEClassifier(namespaceURI, typeName);
460     return eClassifier == null ? null : SDOUtil.adaptType(eClassifier);
461   }
462
463   /**
464    * <!-- begin-user-doc -->
465    * <!-- end-user-doc -->
466    * @generated NOT
467    */

468   public EObject createEObject(EClass type)
469   {
470     return EcoreUtil.create(type);
471   }
472
473   public EDataObject createEDataObject(EType type)
474   {
475     return SDOUtil.create(type);
476   }
477
478   public DataObject getRootObject()
479   {
480     return (EDataObject)getERootObject();
481   }
482
483   public DataObject createRootObject(String JavaDoc namespaceURI, String JavaDoc typeName)
484   {
485     EDataObject eDataObject = SDOUtil.create(getEType(namespaceURI, typeName));
486     setERootObject(eDataObject);
487     return eDataObject;
488   }
489
490   public DataObject createRootObject(Type type)
491   {
492     EDataObject eDataObject = SDOUtil.create((EType)type);
493     setERootObject(eDataObject);
494     return eDataObject;
495   }
496
497   public ChangeSummary getChangeSummary()
498   {
499     //FB is this the right place to create the resources?
500
EChangeSummary changeSummary = getEChangeSummary();
501     if (changeSummary == null)
502     {
503       getRootResource();
504       changeSummary = createEChangeSummary();
505       setEChangeSummary(changeSummary);
506     }
507
508     if (changeSummary.eResource() == null)
509     {
510       Resource changeSummaryResource = createChangeSummaryResource();
511       changeSummaryResource.getContents().add(changeSummary);
512     }
513
514     return changeSummary;
515   }
516
517   protected EChangeSummary createEChangeSummary()
518   {
519     return SDOFactory.eINSTANCE.createEChangeSummary();
520   }
521
522   public static class EDataGraphExternalizable implements Externalizable JavaDoc
523   {
524     protected EDataGraph eDataGraph;
525     protected Map JavaDoc writeReplacements = new HashMap JavaDoc();
526
527     public EDataGraphExternalizable()
528     {
529     }
530
531     public EDataGraphExternalizable(EDataGraph eDataGraph)
532     {
533       this.eDataGraph = eDataGraph;
534     }
535
536     public void writeExternal(ObjectOutput JavaDoc objectOutput) throws IOException JavaDoc
537     {
538       ByteArrayOutputStream JavaDoc byteArrayOutputStream =
539         new ByteArrayOutputStream JavaDoc()
540         {
541           public byte [] toByteArray()
542           {
543             return super.toByteArray();
544           }
545         };
546
547       eDataGraph.getDataGraphResource().save(byteArrayOutputStream, null);
548       objectOutput.writeInt(byteArrayOutputStream.toByteArray().length);
549       objectOutput.write(byteArrayOutputStream.toByteArray());
550     }
551
552     public void readExternal(ObjectInput JavaDoc objectInput) throws IOException JavaDoc
553     {
554       int length = objectInput.readInt();
555       byte [] bytes = new byte [length];
556       objectInput.readFully(bytes);
557
558       ResourceSet resourceSet = createResourceSet();
559       Resource resource = resourceSet.createResource(URI.createURI("all.datagraph"));
560       resource.load(new ByteArrayInputStream JavaDoc(bytes), null);
561       eDataGraph = (EDataGraph)resource.getContents().get(0);
562     }
563
564     protected ResourceSet createResourceSet()
565     {
566       return SDOUtil.createResourceSet();
567     }
568
569     public Object JavaDoc getWriteReplacement(EObject eObject)
570     {
571       Object JavaDoc result = writeReplacements.get(eObject);
572       if (result == null)
573       {
574         result = new EDataObjectExternalizable(eDataGraph, eObject);
575         writeReplacements.put(eObject, result);
576       }
577       return result;
578     }
579
580     protected Object JavaDoc readResolve()
581     {
582       return eDataGraph;
583     }
584   }
585
586   public static class EDataObjectExternalizable implements Externalizable JavaDoc
587   {
588     protected EObject eObject;
589     protected EDataGraph eDataGraph;
590
591     public EDataObjectExternalizable()
592     {
593     }
594
595     public EDataObjectExternalizable(EDataGraph eDataGraph, EObject eObject)
596     {
597       this.eDataGraph = eDataGraph;
598       this.eObject = eObject;
599     }
600
601     public void writeExternal(ObjectOutput JavaDoc objectOutput) throws IOException JavaDoc
602     {
603       // Write the data object reference too.
604
String JavaDoc uri = eObject.eResource().getURIFragment(eObject);
605       objectOutput.writeUTF(uri);
606       objectOutput.writeObject(((EDataGraph.Internal)eDataGraph).getWriteReplacement());
607     }
608
609     public void readExternal(ObjectInput JavaDoc objectInput) throws IOException JavaDoc, ClassNotFoundException JavaDoc
610     {
611       String JavaDoc uri = objectInput.readUTF();
612       eDataGraph = (EDataGraph)objectInput.readObject();
613       eObject = eDataGraph.getRootResource().getEObject(uri);
614     }
615
616     protected Object JavaDoc readResolve()
617     {
618       return eObject;
619     }
620   }
621
622   
623   protected EDataGraphExternalizable eDataGraphExternalizable;
624   protected Adapter modificationTracker;
625
626   public Object JavaDoc getWriteReplacement()
627   {
628     if (eDataGraphExternalizable == null)
629     {
630       eDataGraphExternalizable = createEDataGraphExternalizable();
631       getRootResource().setTrackingModification(true);
632       modificationTracker =
633         new AdapterImpl()
634         {
635           public void notifyChanged(Notification notification)
636           {
637             if (notification.getFeatureID(Resource.class) == Resource.RESOURCE__IS_MODIFIED && notification.getNewBooleanValue())
638             {
639               eDataGraphExternalizable = null;
640               modificationTracker = null;
641               ((Resource)target).eAdapters().remove(this);
642             }
643           }
644         };
645       getRootResource().eAdapters().add(modificationTracker);
646     }
647     return eDataGraphExternalizable;
648   }
649
650   protected EDataGraphExternalizable createEDataGraphExternalizable()
651   {
652     return new EDataGraphExternalizable(this);
653   }
654
655   public Object JavaDoc getWriteReplacement(EObject eObject)
656   {
657     return ((EDataGraphExternalizable)getWriteReplacement()).getWriteReplacement(eObject);
658   }
659
660   public Object JavaDoc writeReplace()
661   {
662     return getWriteReplacement();
663   }
664
665   public EObject eObjectForURIFragmentSegment(String JavaDoc uriFragmentSegment)
666   {
667     if (uriFragmentSegment.startsWith("@models."))
668     {
669       if (resourceSet != null)
670       {
671         int count = Integer.parseInt(uriFragmentSegment.substring(8));
672         for (Iterator JavaDoc i = resourceSet.getResources().iterator(); i.hasNext(); )
673         {
674           Resource ePackageResource = (Resource)i.next();
675           List JavaDoc resourceContents = ePackageResource.getContents();
676           if (resourceContents.size() == 1 && resourceContents.get(0) instanceof EPackage && count-- == 0)
677           {
678             return (EObject)resourceContents.get(0);
679           }
680         }
681       }
682
683       return null;
684     }
685     else
686     {
687       return super.eObjectForURIFragmentSegment(uriFragmentSegment);
688     }
689   }
690
691   /**
692    * <!-- begin-user-doc -->
693    * <!-- end-user-doc -->
694    * @generated
695    */

696   public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class JavaDoc baseClass, NotificationChain msgs)
697   {
698     if (featureID >= 0)
699     {
700       switch (eDerivedStructuralFeatureID(featureID, baseClass))
701       {
702         case SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY:
703           if (eChangeSummary != null)
704             msgs = ((InternalEObject)eChangeSummary).eInverseRemove(this, SDOPackage.ECHANGE_SUMMARY__EDATA_GRAPH, EChangeSummary.class, msgs);
705           return basicSetEChangeSummary((EChangeSummary)otherEnd, msgs);
706         default:
707           return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
708       }
709     }
710     if (eContainer != null)
711       msgs = eBasicRemoveFromContainer(msgs);
712     return eBasicSetContainer(otherEnd, featureID, msgs);
713   }
714
715   /**
716    * <!-- begin-user-doc -->
717    * <!-- end-user-doc -->
718    * @generated
719    */

720   public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class JavaDoc baseClass, NotificationChain msgs)
721   {
722     if (featureID >= 0)
723     {
724       switch (eDerivedStructuralFeatureID(featureID, baseClass))
725       {
726         case SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY:
727           return basicSetEChangeSummary(null, msgs);
728         default:
729           return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
730       }
731     }
732     return eBasicSetContainer(null, featureID, msgs);
733   }
734
735   /**
736    * <!-- begin-user-doc -->
737    * <!-- end-user-doc -->
738    * @generated
739    */

740   public Object JavaDoc eGet(EStructuralFeature eFeature, boolean resolve)
741   {
742     switch (eDerivedStructuralFeatureID(eFeature))
743     {
744       case SDOPackage.EDATA_GRAPH__ROOT_OBJECT:
745         return getRootObject();
746       case SDOPackage.EDATA_GRAPH__CHANGE_SUMMARY:
747         return getChangeSummary();
748       case SDOPackage.EDATA_GRAPH__RESOURCE_SET:
749         return getResourceSet();
750       case SDOPackage.EDATA_GRAPH__ROOT_RESOURCE:
751         return getRootResource();
752       case SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY:
753         return getEChangeSummary();
754       case SDOPackage.EDATA_GRAPH__EROOT_OBJECT:
755         return getERootObject();
756     }
757     return eDynamicGet(eFeature, resolve);
758   }
759
760   /**
761    * <!-- begin-user-doc -->
762    * <!-- end-user-doc -->
763    * @generated
764    */

765   public void eSet(EStructuralFeature eFeature, Object JavaDoc newValue)
766   {
767     switch (eDerivedStructuralFeatureID(eFeature))
768     {
769       case SDOPackage.EDATA_GRAPH__RESOURCE_SET:
770         setResourceSet((ResourceSet)newValue);
771         return;
772       case SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY:
773         setEChangeSummary((EChangeSummary)newValue);
774         return;
775       case SDOPackage.EDATA_GRAPH__EROOT_OBJECT:
776         setERootObject((EObject)newValue);
777         return;
778     }
779     eDynamicSet(eFeature, newValue);
780   }
781
782   /**
783    * <!-- begin-user-doc -->
784    * <!-- end-user-doc -->
785    * @generated
786    */

787   public void eUnset(EStructuralFeature eFeature)
788   {
789     switch (eDerivedStructuralFeatureID(eFeature))
790     {
791       case SDOPackage.EDATA_GRAPH__RESOURCE_SET:
792         setResourceSet(RESOURCE_SET_EDEFAULT);
793         return;
794       case SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY:
795         setEChangeSummary((EChangeSummary)null);
796         return;
797       case SDOPackage.EDATA_GRAPH__EROOT_OBJECT:
798         setERootObject((EObject)null);
799         return;
800     }
801     eDynamicUnset(eFeature);
802   }
803
804   /**
805    * <!-- begin-user-doc -->
806    * <!-- end-user-doc -->
807    * @generated
808    */

809   public boolean eIsSet(EStructuralFeature eFeature)
810   {
811     switch (eDerivedStructuralFeatureID(eFeature))
812     {
813       case SDOPackage.EDATA_GRAPH__ROOT_OBJECT:
814         return getRootObject() != null;
815       case SDOPackage.EDATA_GRAPH__CHANGE_SUMMARY:
816         return getChangeSummary() != null;
817       case SDOPackage.EDATA_GRAPH__RESOURCE_SET:
818         return RESOURCE_SET_EDEFAULT == null ? resourceSet != null : !RESOURCE_SET_EDEFAULT.equals(resourceSet);
819       case SDOPackage.EDATA_GRAPH__ROOT_RESOURCE:
820         return ROOT_RESOURCE_EDEFAULT == null ? getRootResource() != null : !ROOT_RESOURCE_EDEFAULT.equals(getRootResource());
821       case SDOPackage.EDATA_GRAPH__ECHANGE_SUMMARY:
822         return eChangeSummary != null;
823       case SDOPackage.EDATA_GRAPH__EROOT_OBJECT:
824         return eRootObject != null;
825     }
826     return eDynamicIsSet(eFeature);
827   }
828
829   /**
830    * <!-- begin-user-doc -->
831    * <!-- end-user-doc -->
832    * @generated
833    */

834   public String JavaDoc toString()
835   {
836     if (eIsProxy()) return super.toString();
837
838     StringBuffer JavaDoc result = new StringBuffer JavaDoc(super.toString());
839     result.append(" (resourceSet: ");
840     result.append(resourceSet);
841     result.append(')');
842     return result.toString();
843   }
844
845 } //EDataGraphImpl
846
Popular Tags