View Javadoc

1   /**
2    * <copyright>
3    * </copyright>
4    *
5    * $Id$
6    */
7   package org.mod4j.dsl.datacontract.mm.DataContractDsl.impl;
8   
9   import org.eclipse.emf.common.notify.Notification;
10  import org.eclipse.emf.common.notify.NotificationChain;
11  
12  import org.eclipse.emf.ecore.EClass;
13  import org.eclipse.emf.ecore.InternalEObject;
14  
15  import org.eclipse.emf.ecore.impl.ENotificationImpl;
16  
17  import org.eclipse.emf.ecore.util.EcoreUtil;
18  
19  import org.mod4j.dsl.datacontract.mm.DataContractDsl.DataContractDslPackage;
20  import org.mod4j.dsl.datacontract.mm.DataContractDsl.DataContractModel;
21  import org.mod4j.dsl.datacontract.mm.DataContractDsl.ExternalReference;
22  
23  /**
24   * <!-- begin-user-doc -->
25   * An implementation of the model object '<em><b>External Reference</b></em>'.
26   * <!-- end-user-doc -->
27   * <p>
28   * The following features are implemented:
29   * <ul>
30   *   <li>{@link org.mod4j.dsl.datacontract.mm.DataContractDsl.impl.ExternalReferenceImpl#getModelname <em>Modelname</em>}</li>
31   *   <li>{@link org.mod4j.dsl.datacontract.mm.DataContractDsl.impl.ExternalReferenceImpl#getDatacontractModel <em>Datacontract Model</em>}</li>
32   *   <li>{@link org.mod4j.dsl.datacontract.mm.DataContractDsl.impl.ExternalReferenceImpl#getKeyword <em>Keyword</em>}</li>
33   * </ul>
34   * </p>
35   *
36   * @generated
37   */
38  public class ExternalReferenceImpl extends ModelElementImpl implements ExternalReference {
39  	/**
40       * The default value of the '{@link #getModelname() <em>Modelname</em>}' attribute.
41       * <!-- begin-user-doc -->
42  	 * <!-- end-user-doc -->
43       * @see #getModelname()
44       * @generated
45       * @ordered
46       */
47  	protected static final String MODELNAME_EDEFAULT = "";
48  
49  	/**
50       * The cached value of the '{@link #getModelname() <em>Modelname</em>}' attribute.
51       * <!-- begin-user-doc -->
52  	 * <!-- end-user-doc -->
53       * @see #getModelname()
54       * @generated
55       * @ordered
56       */
57  	protected String modelname = MODELNAME_EDEFAULT;
58  
59  	/**
60       * The default value of the '{@link #getKeyword() <em>Keyword</em>}' attribute.
61       * <!-- begin-user-doc -->
62       * <!-- end-user-doc -->
63       * @see #getKeyword()
64       * @generated
65       * @ordered
66       */
67      protected static final String KEYWORD_EDEFAULT = null;
68  
69      /**
70       * The cached value of the '{@link #getKeyword() <em>Keyword</em>}' attribute.
71       * <!-- begin-user-doc -->
72       * <!-- end-user-doc -->
73       * @see #getKeyword()
74       * @generated
75       * @ordered
76       */
77      protected String keyword = KEYWORD_EDEFAULT;
78  
79      /**
80       * <!-- begin-user-doc -->
81  	 * <!-- end-user-doc -->
82       * @generated
83       */
84  	protected ExternalReferenceImpl() {
85          super();
86      }
87  
88  	/**
89       * <!-- begin-user-doc -->
90  	 * <!-- end-user-doc -->
91       * @generated
92       */
93  	@Override
94  	protected EClass eStaticClass() {
95          return DataContractDslPackage.Literals.EXTERNAL_REFERENCE;
96      }
97  
98  	/**
99       * <!-- begin-user-doc -->
100 	 * <!-- end-user-doc -->
101      * @generated
102      */
103 	public String getModelname() {
104         return modelname;
105     }
106 
107 	/**
108      * <!-- begin-user-doc -->
109 	 * <!-- end-user-doc -->
110      * @generated
111      */
112 	public void setModelname(String newModelname) {
113         String oldModelname = modelname;
114         modelname = newModelname;
115         if (eNotificationRequired())
116             eNotify(new ENotificationImpl(this, Notification.SET, DataContractDslPackage.EXTERNAL_REFERENCE__MODELNAME, oldModelname, modelname));
117     }
118 
119 	/**
120      * <!-- begin-user-doc -->
121 	 * <!-- end-user-doc -->
122      * @generated
123      */
124 	public DataContractModel getDatacontractModel() {
125         if (eContainerFeatureID() != DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL) return null;
126         return (DataContractModel)eContainer();
127     }
128 
129 	/**
130      * <!-- begin-user-doc -->
131 	 * <!-- end-user-doc -->
132      * @generated
133      */
134 	public NotificationChain basicSetDatacontractModel(DataContractModel newDatacontractModel, NotificationChain msgs) {
135         msgs = eBasicSetContainer((InternalEObject)newDatacontractModel, DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL, msgs);
136         return msgs;
137     }
138 
139 	/**
140      * <!-- begin-user-doc -->
141 	 * <!-- end-user-doc -->
142      * @generated
143      */
144 	public void setDatacontractModel(DataContractModel newDatacontractModel) {
145         if (newDatacontractModel != eInternalContainer() || (eContainerFeatureID() != DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL && newDatacontractModel != null)) {
146             if (EcoreUtil.isAncestor(this, newDatacontractModel))
147                 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
148             NotificationChain msgs = null;
149             if (eInternalContainer() != null)
150                 msgs = eBasicRemoveFromContainer(msgs);
151             if (newDatacontractModel != null)
152                 msgs = ((InternalEObject)newDatacontractModel).eInverseAdd(this, DataContractDslPackage.DATA_CONTRACT_MODEL__EXTERNAL_REFERENCES, DataContractModel.class, msgs);
153             msgs = basicSetDatacontractModel(newDatacontractModel, msgs);
154             if (msgs != null) msgs.dispatch();
155         }
156         else if (eNotificationRequired())
157             eNotify(new ENotificationImpl(this, Notification.SET, DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL, newDatacontractModel, newDatacontractModel));
158     }
159 
160 	/**
161      * <!-- begin-user-doc -->
162      * <!-- end-user-doc -->
163      * @generated
164      */
165     public String getKeyword() {
166         return keyword;
167     }
168 
169     /**
170      * <!-- begin-user-doc -->
171      * <!-- end-user-doc -->
172      * @generated
173      */
174     public void setKeyword(String newKeyword) {
175         String oldKeyword = keyword;
176         keyword = newKeyword;
177         if (eNotificationRequired())
178             eNotify(new ENotificationImpl(this, Notification.SET, DataContractDslPackage.EXTERNAL_REFERENCE__KEYWORD, oldKeyword, keyword));
179     }
180 
181     /**
182      * <!-- begin-user-doc -->
183 	 * <!-- end-user-doc -->
184      * @generated
185      */
186 	@Override
187 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
188         switch (featureID) {
189             case DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL:
190                 if (eInternalContainer() != null)
191                     msgs = eBasicRemoveFromContainer(msgs);
192                 return basicSetDatacontractModel((DataContractModel)otherEnd, msgs);
193         }
194         return super.eInverseAdd(otherEnd, featureID, msgs);
195     }
196 
197 	/**
198      * <!-- begin-user-doc -->
199 	 * <!-- end-user-doc -->
200      * @generated
201      */
202 	@Override
203 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
204         switch (featureID) {
205             case DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL:
206                 return basicSetDatacontractModel(null, msgs);
207         }
208         return super.eInverseRemove(otherEnd, featureID, msgs);
209     }
210 
211 	/**
212      * <!-- begin-user-doc -->
213 	 * <!-- end-user-doc -->
214      * @generated
215      */
216 	@Override
217 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
218         switch (eContainerFeatureID()) {
219             case DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL:
220                 return eInternalContainer().eInverseRemove(this, DataContractDslPackage.DATA_CONTRACT_MODEL__EXTERNAL_REFERENCES, DataContractModel.class, msgs);
221         }
222         return super.eBasicRemoveFromContainerFeature(msgs);
223     }
224 
225 	/**
226      * <!-- begin-user-doc -->
227 	 * <!-- end-user-doc -->
228      * @generated
229      */
230 	@Override
231 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
232         switch (featureID) {
233             case DataContractDslPackage.EXTERNAL_REFERENCE__MODELNAME:
234                 return getModelname();
235             case DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL:
236                 return getDatacontractModel();
237             case DataContractDslPackage.EXTERNAL_REFERENCE__KEYWORD:
238                 return getKeyword();
239         }
240         return super.eGet(featureID, resolve, coreType);
241     }
242 
243 	/**
244      * <!-- begin-user-doc -->
245 	 * <!-- end-user-doc -->
246      * @generated
247      */
248 	@Override
249 	public void eSet(int featureID, Object newValue) {
250         switch (featureID) {
251             case DataContractDslPackage.EXTERNAL_REFERENCE__MODELNAME:
252                 setModelname((String)newValue);
253                 return;
254             case DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL:
255                 setDatacontractModel((DataContractModel)newValue);
256                 return;
257             case DataContractDslPackage.EXTERNAL_REFERENCE__KEYWORD:
258                 setKeyword((String)newValue);
259                 return;
260         }
261         super.eSet(featureID, newValue);
262     }
263 
264 	/**
265      * <!-- begin-user-doc -->
266 	 * <!-- end-user-doc -->
267      * @generated
268      */
269 	@Override
270 	public void eUnset(int featureID) {
271         switch (featureID) {
272             case DataContractDslPackage.EXTERNAL_REFERENCE__MODELNAME:
273                 setModelname(MODELNAME_EDEFAULT);
274                 return;
275             case DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL:
276                 setDatacontractModel((DataContractModel)null);
277                 return;
278             case DataContractDslPackage.EXTERNAL_REFERENCE__KEYWORD:
279                 setKeyword(KEYWORD_EDEFAULT);
280                 return;
281         }
282         super.eUnset(featureID);
283     }
284 
285 	/**
286      * <!-- begin-user-doc -->
287 	 * <!-- end-user-doc -->
288      * @generated
289      */
290 	@Override
291 	public boolean eIsSet(int featureID) {
292         switch (featureID) {
293             case DataContractDslPackage.EXTERNAL_REFERENCE__MODELNAME:
294                 return MODELNAME_EDEFAULT == null ? modelname != null : !MODELNAME_EDEFAULT.equals(modelname);
295             case DataContractDslPackage.EXTERNAL_REFERENCE__DATACONTRACT_MODEL:
296                 return getDatacontractModel() != null;
297             case DataContractDslPackage.EXTERNAL_REFERENCE__KEYWORD:
298                 return KEYWORD_EDEFAULT == null ? keyword != null : !KEYWORD_EDEFAULT.equals(keyword);
299         }
300         return super.eIsSet(featureID);
301     }
302 
303 	/**
304      * <!-- begin-user-doc -->
305 	 * <!-- end-user-doc -->
306      * @generated
307      */
308 	@Override
309 	public String toString() {
310         if (eIsProxy()) return super.toString();
311 
312         StringBuffer result = new StringBuffer(super.toString());
313         result.append(" (modelname: ");
314         result.append(modelname);
315         result.append(", keyword: ");
316         result.append(keyword);
317         result.append(')');
318         return result.toString();
319     }
320 
321 } //ExternalReferenceImpl