1
2
3
4
5
6
7 package BusinessDomainDsl.impl;
8
9 import BusinessDomainDsl.AbstractBusinessRule;
10 import BusinessDomainDsl.Association;
11 import BusinessDomainDsl.BusinessClass;
12 import BusinessDomainDsl.BusinessDomainDslPackage;
13
14 import java.util.Collection;
15
16 import org.eclipse.emf.common.notify.Notification;
17 import org.eclipse.emf.common.notify.NotificationChain;
18
19 import org.eclipse.emf.common.util.EList;
20
21 import org.eclipse.emf.ecore.EClass;
22 import org.eclipse.emf.ecore.InternalEObject;
23
24 import org.eclipse.emf.ecore.impl.ENotificationImpl;
25
26 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
27 import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
28 import org.eclipse.emf.ecore.util.InternalEList;
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 public class BusinessClassImpl extends AbstractBusinessClassImpl implements BusinessClass {
46
47
48
49
50
51
52
53
54 protected EList<AbstractBusinessRule> businessRules;
55
56
57
58
59
60
61
62
63
64 protected BusinessClass superclass;
65
66
67
68
69
70
71
72
73
74 protected EList<Association> associationsTo;
75
76
77
78
79
80
81 protected BusinessClassImpl() {
82 super();
83 }
84
85
86
87
88
89
90 @Override
91 protected EClass eStaticClass() {
92 return BusinessDomainDslPackage.Literals.BUSINESS_CLASS;
93 }
94
95
96
97
98
99
100 public EList<AbstractBusinessRule> getBusinessRules() {
101 if (businessRules == null) {
102 businessRules = new EObjectContainmentWithInverseEList<AbstractBusinessRule>(AbstractBusinessRule.class, this, BusinessDomainDslPackage.BUSINESS_CLASS__BUSINESS_RULES, BusinessDomainDslPackage.ABSTRACT_BUSINESS_RULE__BUSINESS_CLASS);
103 }
104 return businessRules;
105 }
106
107
108
109
110
111
112 public BusinessClass getSuperclass() {
113 if (superclass != null && superclass.eIsProxy()) {
114 InternalEObject oldSuperclass = (InternalEObject)superclass;
115 superclass = (BusinessClass)eResolveProxy(oldSuperclass);
116 if (superclass != oldSuperclass) {
117 if (eNotificationRequired())
118 eNotify(new ENotificationImpl(this, Notification.RESOLVE, BusinessDomainDslPackage.BUSINESS_CLASS__SUPERCLASS, oldSuperclass, superclass));
119 }
120 }
121 return superclass;
122 }
123
124
125
126
127
128
129 public BusinessClass basicGetSuperclass() {
130 return superclass;
131 }
132
133
134
135
136
137
138 public void setSuperclass(BusinessClass newSuperclass) {
139 BusinessClass oldSuperclass = superclass;
140 superclass = newSuperclass;
141 if (eNotificationRequired())
142 eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.BUSINESS_CLASS__SUPERCLASS, oldSuperclass, superclass));
143 }
144
145
146
147
148
149
150 public EList<Association> getAssociationsTo() {
151 if (associationsTo == null) {
152 associationsTo = new EObjectWithInverseResolvingEList<Association>(Association.class, this, BusinessDomainDslPackage.BUSINESS_CLASS__ASSOCIATIONS_TO, BusinessDomainDslPackage.ASSOCIATION__SOURCE);
153 }
154 return associationsTo;
155 }
156
157
158
159
160
161
162 @SuppressWarnings("unchecked")
163 @Override
164 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
165 switch (featureID) {
166 case BusinessDomainDslPackage.BUSINESS_CLASS__BUSINESS_RULES:
167 return ((InternalEList<InternalEObject>)(InternalEList<?>)getBusinessRules()).basicAdd(otherEnd, msgs);
168 case BusinessDomainDslPackage.BUSINESS_CLASS__ASSOCIATIONS_TO:
169 return ((InternalEList<InternalEObject>)(InternalEList<?>)getAssociationsTo()).basicAdd(otherEnd, msgs);
170 }
171 return super.eInverseAdd(otherEnd, featureID, msgs);
172 }
173
174
175
176
177
178
179 @Override
180 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
181 switch (featureID) {
182 case BusinessDomainDslPackage.BUSINESS_CLASS__BUSINESS_RULES:
183 return ((InternalEList<?>)getBusinessRules()).basicRemove(otherEnd, msgs);
184 case BusinessDomainDslPackage.BUSINESS_CLASS__ASSOCIATIONS_TO:
185 return ((InternalEList<?>)getAssociationsTo()).basicRemove(otherEnd, msgs);
186 }
187 return super.eInverseRemove(otherEnd, featureID, msgs);
188 }
189
190
191
192
193
194
195 @Override
196 public Object eGet(int featureID, boolean resolve, boolean coreType) {
197 switch (featureID) {
198 case BusinessDomainDslPackage.BUSINESS_CLASS__BUSINESS_RULES:
199 return getBusinessRules();
200 case BusinessDomainDslPackage.BUSINESS_CLASS__SUPERCLASS:
201 if (resolve) return getSuperclass();
202 return basicGetSuperclass();
203 case BusinessDomainDslPackage.BUSINESS_CLASS__ASSOCIATIONS_TO:
204 return getAssociationsTo();
205 }
206 return super.eGet(featureID, resolve, coreType);
207 }
208
209
210
211
212
213
214 @SuppressWarnings("unchecked")
215 @Override
216 public void eSet(int featureID, Object newValue) {
217 switch (featureID) {
218 case BusinessDomainDslPackage.BUSINESS_CLASS__BUSINESS_RULES:
219 getBusinessRules().clear();
220 getBusinessRules().addAll((Collection<? extends AbstractBusinessRule>)newValue);
221 return;
222 case BusinessDomainDslPackage.BUSINESS_CLASS__SUPERCLASS:
223 setSuperclass((BusinessClass)newValue);
224 return;
225 case BusinessDomainDslPackage.BUSINESS_CLASS__ASSOCIATIONS_TO:
226 getAssociationsTo().clear();
227 getAssociationsTo().addAll((Collection<? extends Association>)newValue);
228 return;
229 }
230 super.eSet(featureID, newValue);
231 }
232
233
234
235
236
237
238 @Override
239 public void eUnset(int featureID) {
240 switch (featureID) {
241 case BusinessDomainDslPackage.BUSINESS_CLASS__BUSINESS_RULES:
242 getBusinessRules().clear();
243 return;
244 case BusinessDomainDslPackage.BUSINESS_CLASS__SUPERCLASS:
245 setSuperclass((BusinessClass)null);
246 return;
247 case BusinessDomainDslPackage.BUSINESS_CLASS__ASSOCIATIONS_TO:
248 getAssociationsTo().clear();
249 return;
250 }
251 super.eUnset(featureID);
252 }
253
254
255
256
257
258
259 @Override
260 public boolean eIsSet(int featureID) {
261 switch (featureID) {
262 case BusinessDomainDslPackage.BUSINESS_CLASS__BUSINESS_RULES:
263 return businessRules != null && !businessRules.isEmpty();
264 case BusinessDomainDslPackage.BUSINESS_CLASS__SUPERCLASS:
265 return superclass != null;
266 case BusinessDomainDslPackage.BUSINESS_CLASS__ASSOCIATIONS_TO:
267 return associationsTo != null && !associationsTo.isEmpty();
268 }
269 return super.eIsSet(featureID);
270 }
271
272 }