1
2
3
4
5
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
26
27
28
29
30
31
32
33
34
35
36
37
38 public class ServiceMethodImpl extends ModelElementImpl implements ServiceMethod {
39
40
41
42
43
44
45
46
47 protected static final MethodType TYPE_EDEFAULT = MethodType.CREATE;
48
49
50
51
52
53
54
55
56
57 protected MethodType type = TYPE_EDEFAULT;
58
59
60
61
62
63
64 protected ServiceMethodImpl() {
65 super();
66 }
67
68
69
70
71
72
73 @Override
74 protected EClass eStaticClass() {
75 return ServiceDslPackage.Literals.SERVICE_METHOD;
76 }
77
78
79
80
81
82
83 public MethodType getType() {
84 return type;
85 }
86
87
88
89
90
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
101
102
103
104 public ServiceModel getModel() {
105 if (eContainerFeatureID() != ServiceDslPackage.SERVICE_METHOD__MODEL) return null;
106 return (ServiceModel)eContainer();
107 }
108
109
110
111
112
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
121
122
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
142
143
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
158
159
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
172
173
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
186
187
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
202
203
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
220
221
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
238
239
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
254
255
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 }