1
2
3
4
5
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.BusinessClassAssociationRoleReference;
20 import org.mod4j.dsl.datacontract.mm.DataContractDsl.BusinessClassDto;
21 import org.mod4j.dsl.datacontract.mm.DataContractDsl.DataContractDslPackage;
22 import org.mod4j.dsl.datacontract.mm.DataContractDsl.Dto;
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class BusinessClassAssociationRoleReferenceImpl extends ModelElementImpl implements BusinessClassAssociationRoleReference {
39
40
41
42
43
44
45
46
47 protected Dto dtoType;
48
49
50
51
52
53
54 protected BusinessClassAssociationRoleReferenceImpl() {
55 super();
56 }
57
58
59
60
61
62
63 @Override
64 protected EClass eStaticClass() {
65 return DataContractDslPackage.Literals.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE;
66 }
67
68
69
70
71
72
73 public BusinessClassDto getDto() {
74 if (eContainerFeatureID() != DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO) return null;
75 return (BusinessClassDto)eContainer();
76 }
77
78
79
80
81
82
83 public NotificationChain basicSetDto(BusinessClassDto newDto, NotificationChain msgs) {
84 msgs = eBasicSetContainer((InternalEObject)newDto, DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO, msgs);
85 return msgs;
86 }
87
88
89
90
91
92
93 public void setDto(BusinessClassDto newDto) {
94 if (newDto != eInternalContainer() || (eContainerFeatureID() != DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO && newDto != null)) {
95 if (EcoreUtil.isAncestor(this, newDto))
96 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
97 NotificationChain msgs = null;
98 if (eInternalContainer() != null)
99 msgs = eBasicRemoveFromContainer(msgs);
100 if (newDto != null)
101 msgs = ((InternalEObject)newDto).eInverseAdd(this, DataContractDslPackage.BUSINESS_CLASS_DTO__ASSOCIATION_REFERENCES, BusinessClassDto.class, msgs);
102 msgs = basicSetDto(newDto, msgs);
103 if (msgs != null) msgs.dispatch();
104 }
105 else if (eNotificationRequired())
106 eNotify(new ENotificationImpl(this, Notification.SET, DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO, newDto, newDto));
107 }
108
109
110
111
112
113
114 public Dto getDtoType() {
115 if (dtoType != null && dtoType.eIsProxy()) {
116 InternalEObject oldDtoType = (InternalEObject)dtoType;
117 dtoType = (Dto)eResolveProxy(oldDtoType);
118 if (dtoType != oldDtoType) {
119 if (eNotificationRequired())
120 eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO_TYPE, oldDtoType, dtoType));
121 }
122 }
123 return dtoType;
124 }
125
126
127
128
129
130
131 public Dto basicGetDtoType() {
132 return dtoType;
133 }
134
135
136
137
138
139
140 public void setDtoType(Dto newDtoType) {
141 Dto oldDtoType = dtoType;
142 dtoType = newDtoType;
143 if (eNotificationRequired())
144 eNotify(new ENotificationImpl(this, Notification.SET, DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO_TYPE, oldDtoType, dtoType));
145 }
146
147
148
149
150
151
152 @Override
153 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
154 switch (featureID) {
155 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO:
156 if (eInternalContainer() != null)
157 msgs = eBasicRemoveFromContainer(msgs);
158 return basicSetDto((BusinessClassDto)otherEnd, msgs);
159 }
160 return super.eInverseAdd(otherEnd, featureID, msgs);
161 }
162
163
164
165
166
167
168 @Override
169 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
170 switch (featureID) {
171 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO:
172 return basicSetDto(null, msgs);
173 }
174 return super.eInverseRemove(otherEnd, featureID, msgs);
175 }
176
177
178
179
180
181
182 @Override
183 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
184 switch (eContainerFeatureID()) {
185 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO:
186 return eInternalContainer().eInverseRemove(this, DataContractDslPackage.BUSINESS_CLASS_DTO__ASSOCIATION_REFERENCES, BusinessClassDto.class, msgs);
187 }
188 return super.eBasicRemoveFromContainerFeature(msgs);
189 }
190
191
192
193
194
195
196 @Override
197 public Object eGet(int featureID, boolean resolve, boolean coreType) {
198 switch (featureID) {
199 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO:
200 return getDto();
201 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO_TYPE:
202 if (resolve) return getDtoType();
203 return basicGetDtoType();
204 }
205 return super.eGet(featureID, resolve, coreType);
206 }
207
208
209
210
211
212
213 @Override
214 public void eSet(int featureID, Object newValue) {
215 switch (featureID) {
216 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO:
217 setDto((BusinessClassDto)newValue);
218 return;
219 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO_TYPE:
220 setDtoType((Dto)newValue);
221 return;
222 }
223 super.eSet(featureID, newValue);
224 }
225
226
227
228
229
230
231 @Override
232 public void eUnset(int featureID) {
233 switch (featureID) {
234 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO:
235 setDto((BusinessClassDto)null);
236 return;
237 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO_TYPE:
238 setDtoType((Dto)null);
239 return;
240 }
241 super.eUnset(featureID);
242 }
243
244
245
246
247
248
249 @Override
250 public boolean eIsSet(int featureID) {
251 switch (featureID) {
252 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO:
253 return getDto() != null;
254 case DataContractDslPackage.BUSINESS_CLASS_ASSOCIATION_ROLE_REFERENCE__DTO_TYPE:
255 return dtoType != null;
256 }
257 return super.eIsSet(featureID);
258 }
259
260 }