View Javadoc

1   /**
2    * <copyright>
3    * </copyright>
4    *
5    * $Id$
6    */
7   package org.mod4j.dsl.service.mm.ServiceDsl.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.service.mm.ServiceDsl.MethodType;
20  import org.mod4j.dsl.service.mm.ServiceDsl.ServiceDslPackage;
21  import org.mod4j.dsl.service.mm.ServiceDsl.ServiceMethod;
22  import org.mod4j.dsl.service.mm.ServiceDsl.ServiceModel;
23  
24  /**
25   * <!-- begin-user-doc -->
26   * An implementation of the model object '<em><b>Service Method</b></em>'.
27   * <!-- end-user-doc -->
28   * <p>
29   * The following features are implemented:
30   * <ul>
31   *   <li>{@link org.mod4j.dsl.service.mm.ServiceDsl.impl.ServiceMethodImpl#getType <em>Type</em>}</li>
32   *   <li>{@link org.mod4j.dsl.service.mm.ServiceDsl.impl.ServiceMethodImpl#getModel <em>Model</em>}</li>
33   * </ul>
34   * </p>
35   *
36   * @generated
37   */
38  public class ServiceMethodImpl extends ModelElementImpl implements ServiceMethod {
39      /**
40       * The default value of the '{@link #getType() <em>Type</em>}' attribute.
41       * <!-- begin-user-doc -->
42       * <!-- end-user-doc -->
43       * @see #getType()
44       * @generated
45       * @ordered
46       */
47      protected static final MethodType TYPE_EDEFAULT = MethodType.CREATE;
48  
49      /**
50       * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
51       * <!-- begin-user-doc -->
52       * <!-- end-user-doc -->
53       * @see #getType()
54       * @generated
55       * @ordered
56       */
57      protected MethodType type = TYPE_EDEFAULT;
58  
59      /**
60       * <!-- begin-user-doc -->
61       * <!-- end-user-doc -->
62       * @generated
63       */
64      protected ServiceMethodImpl() {
65          super();
66      }
67  
68      /**
69       * <!-- begin-user-doc -->
70       * <!-- end-user-doc -->
71       * @generated
72       */
73      @Override
74      protected EClass eStaticClass() {
75          return ServiceDslPackage.Literals.SERVICE_METHOD;
76      }
77  
78      /**
79       * <!-- begin-user-doc -->
80       * <!-- end-user-doc -->
81       * @generated
82       */
83      public MethodType getType() {
84          return type;
85      }
86  
87      /**
88       * <!-- begin-user-doc -->
89       * <!-- end-user-doc -->
90       * @generated
91       */
92      public void setType(MethodType newType) {
93          MethodType oldType = type;
94          type = newType == null ? TYPE_EDEFAULT : newType;
95          if (eNotificationRequired())
96              eNotify(new ENotificationImpl(this, Notification.SET, ServiceDslPackage.SERVICE_METHOD__TYPE, oldType, type));
97      }
98  
99      /**
100      * <!-- begin-user-doc -->
101      * <!-- end-user-doc -->
102      * @generated
103      */
104     public ServiceModel getModel() {
105         if (eContainerFeatureID() != ServiceDslPackage.SERVICE_METHOD__MODEL) return null;
106         return (ServiceModel)eContainer();
107     }
108 
109     /**
110      * <!-- begin-user-doc -->
111      * <!-- end-user-doc -->
112      * @generated
113      */
114     public NotificationChain basicSetModel(ServiceModel newModel, NotificationChain msgs) {
115         msgs = eBasicSetContainer((InternalEObject)newModel, ServiceDslPackage.SERVICE_METHOD__MODEL, msgs);
116         return msgs;
117     }
118 
119     /**
120      * <!-- begin-user-doc -->
121      * <!-- end-user-doc -->
122      * @generated
123      */
124     public void setModel(ServiceModel newModel) {
125         if (newModel != eInternalContainer() || (eContainerFeatureID() != ServiceDslPackage.SERVICE_METHOD__MODEL && newModel != null)) {
126             if (EcoreUtil.isAncestor(this, newModel))
127                 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
128             NotificationChain msgs = null;
129             if (eInternalContainer() != null)
130                 msgs = eBasicRemoveFromContainer(msgs);
131             if (newModel != null)
132                 msgs = ((InternalEObject)newModel).eInverseAdd(this, ServiceDslPackage.SERVICE_MODEL__METHODS, ServiceModel.class, msgs);
133             msgs = basicSetModel(newModel, msgs);
134             if (msgs != null) msgs.dispatch();
135         }
136         else if (eNotificationRequired())
137             eNotify(new ENotificationImpl(this, Notification.SET, ServiceDslPackage.SERVICE_METHOD__MODEL, newModel, newModel));
138     }
139 
140     /**
141      * <!-- begin-user-doc -->
142      * <!-- end-user-doc -->
143      * @generated
144      */
145     @Override
146     public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
147         switch (featureID) {
148             case ServiceDslPackage.SERVICE_METHOD__MODEL:
149                 if (eInternalContainer() != null)
150                     msgs = eBasicRemoveFromContainer(msgs);
151                 return basicSetModel((ServiceModel)otherEnd, msgs);
152         }
153         return super.eInverseAdd(otherEnd, featureID, msgs);
154     }
155 
156     /**
157      * <!-- begin-user-doc -->
158      * <!-- end-user-doc -->
159      * @generated
160      */
161     @Override
162     public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
163         switch (featureID) {
164             case ServiceDslPackage.SERVICE_METHOD__MODEL:
165                 return basicSetModel(null, msgs);
166         }
167         return super.eInverseRemove(otherEnd, featureID, msgs);
168     }
169 
170     /**
171      * <!-- begin-user-doc -->
172      * <!-- end-user-doc -->
173      * @generated
174      */
175     @Override
176     public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
177         switch (eContainerFeatureID()) {
178             case ServiceDslPackage.SERVICE_METHOD__MODEL:
179                 return eInternalContainer().eInverseRemove(this, ServiceDslPackage.SERVICE_MODEL__METHODS, ServiceModel.class, msgs);
180         }
181         return super.eBasicRemoveFromContainerFeature(msgs);
182     }
183 
184     /**
185      * <!-- begin-user-doc -->
186      * <!-- end-user-doc -->
187      * @generated
188      */
189     @Override
190     public Object eGet(int featureID, boolean resolve, boolean coreType) {
191         switch (featureID) {
192             case ServiceDslPackage.SERVICE_METHOD__TYPE:
193                 return getType();
194             case ServiceDslPackage.SERVICE_METHOD__MODEL:
195                 return getModel();
196         }
197         return super.eGet(featureID, resolve, coreType);
198     }
199 
200     /**
201      * <!-- begin-user-doc -->
202      * <!-- end-user-doc -->
203      * @generated
204      */
205     @Override
206     public void eSet(int featureID, Object newValue) {
207         switch (featureID) {
208             case ServiceDslPackage.SERVICE_METHOD__TYPE:
209                 setType((MethodType)newValue);
210                 return;
211             case ServiceDslPackage.SERVICE_METHOD__MODEL:
212                 setModel((ServiceModel)newValue);
213                 return;
214         }
215         super.eSet(featureID, newValue);
216     }
217 
218     /**
219      * <!-- begin-user-doc -->
220      * <!-- end-user-doc -->
221      * @generated
222      */
223     @Override
224     public void eUnset(int featureID) {
225         switch (featureID) {
226             case ServiceDslPackage.SERVICE_METHOD__TYPE:
227                 setType(TYPE_EDEFAULT);
228                 return;
229             case ServiceDslPackage.SERVICE_METHOD__MODEL:
230                 setModel((ServiceModel)null);
231                 return;
232         }
233         super.eUnset(featureID);
234     }
235 
236     /**
237      * <!-- begin-user-doc -->
238      * <!-- end-user-doc -->
239      * @generated
240      */
241     @Override
242     public boolean eIsSet(int featureID) {
243         switch (featureID) {
244             case ServiceDslPackage.SERVICE_METHOD__TYPE:
245                 return type != TYPE_EDEFAULT;
246             case ServiceDslPackage.SERVICE_METHOD__MODEL:
247                 return getModel() != null;
248         }
249         return super.eIsSet(featureID);
250     }
251 
252     /**
253      * <!-- begin-user-doc -->
254      * <!-- end-user-doc -->
255      * @generated
256      */
257     @Override
258     public String toString() {
259         if (eIsProxy()) return super.toString();
260 
261         StringBuffer result = new StringBuffer(super.toString());
262         result.append(" (type: ");
263         result.append(type);
264         result.append(')');
265         return result.toString();
266     }
267 
268 } //ServiceMethodImpl