1 | /** |
2 | * Copyright 2005-2009 by SDQ, IPD, University of Karlsruhe, Germany |
3 | * |
4 | * $Id$ |
5 | */ |
6 | package de.uka.ipd.sdq.pcm.repository.impl; |
7 | |
8 | import org.eclipse.emf.common.notify.Notification; |
9 | import org.eclipse.emf.common.notify.NotificationChain; |
10 | import org.eclipse.emf.ecore.EClass; |
11 | import org.eclipse.emf.ecore.InternalEObject; |
12 | import org.eclipse.emf.ecore.impl.ENotificationImpl; |
13 | import org.eclipse.emf.ecore.impl.EObjectImpl; |
14 | import org.eclipse.emf.ecore.util.EcoreUtil; |
15 | |
16 | import de.uka.ipd.sdq.pcm.repository.DataType; |
17 | import de.uka.ipd.sdq.pcm.repository.Repository; |
18 | import de.uka.ipd.sdq.pcm.repository.RepositoryPackage; |
19 | |
20 | /** |
21 | * <!-- begin-user-doc --> |
22 | * An implementation of the model object '<em><b>Data Type</b></em>'. |
23 | * <!-- end-user-doc --> |
24 | * <p> |
25 | * The following features are implemented: |
26 | * <ul> |
27 | * <li>{@link de.uka.ipd.sdq.pcm.repository.impl.DataTypeImpl#getRepository__DataType <em>Repository Data Type</em>}</li> |
28 | * </ul> |
29 | * </p> |
30 | * |
31 | * @generated |
32 | */ |
33 | public abstract class DataTypeImpl extends EObjectImpl implements DataType { |
34 | /** |
35 | * <!-- begin-user-doc --> |
36 | * <!-- end-user-doc --> |
37 | * @generated |
38 | */ |
39 | public static final String copyright = "Copyright 2005-2009 by SDQ, IPD, University of Karlsruhe, Germany"; |
40 | |
41 | /** |
42 | * <!-- begin-user-doc --> |
43 | * <!-- end-user-doc --> |
44 | * @generated |
45 | */ |
46 | protected DataTypeImpl() { |
47 | super(); |
48 | } |
49 | |
50 | /** |
51 | * <!-- begin-user-doc --> |
52 | * <!-- end-user-doc --> |
53 | * @generated |
54 | */ |
55 | @Override |
56 | protected EClass eStaticClass() { |
57 | return RepositoryPackage.Literals.DATA_TYPE; |
58 | } |
59 | |
60 | /** |
61 | * <!-- begin-user-doc --> |
62 | * <!-- end-user-doc --> |
63 | * @generated |
64 | */ |
65 | public Repository getRepository__DataType() { |
66 | if (eContainerFeatureID() != RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE) return null; |
67 | return (Repository)eContainer(); |
68 | } |
69 | |
70 | /** |
71 | * <!-- begin-user-doc --> |
72 | * <!-- end-user-doc --> |
73 | * @generated |
74 | */ |
75 | public NotificationChain basicSetRepository__DataType(Repository newRepository__DataType, NotificationChain msgs) { |
76 | msgs = eBasicSetContainer((InternalEObject)newRepository__DataType, RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE, msgs); |
77 | return msgs; |
78 | } |
79 | |
80 | /** |
81 | * <!-- begin-user-doc --> |
82 | * <!-- end-user-doc --> |
83 | * @generated |
84 | */ |
85 | public void setRepository__DataType(Repository newRepository__DataType) { |
86 | if (newRepository__DataType != eInternalContainer() || (eContainerFeatureID() != RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE && newRepository__DataType != null)) { |
87 | if (EcoreUtil.isAncestor(this, newRepository__DataType)) |
88 | throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); |
89 | NotificationChain msgs = null; |
90 | if (eInternalContainer() != null) |
91 | msgs = eBasicRemoveFromContainer(msgs); |
92 | if (newRepository__DataType != null) |
93 | msgs = ((InternalEObject)newRepository__DataType).eInverseAdd(this, RepositoryPackage.REPOSITORY__DATA_TYPES_REPOSITORY, Repository.class, msgs); |
94 | msgs = basicSetRepository__DataType(newRepository__DataType, msgs); |
95 | if (msgs != null) msgs.dispatch(); |
96 | } |
97 | else if (eNotificationRequired()) |
98 | eNotify(new ENotificationImpl(this, Notification.SET, RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE, newRepository__DataType, newRepository__DataType)); |
99 | } |
100 | |
101 | /** |
102 | * <!-- begin-user-doc --> |
103 | * <!-- end-user-doc --> |
104 | * @generated |
105 | */ |
106 | @Override |
107 | public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { |
108 | switch (featureID) { |
109 | case RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE: |
110 | if (eInternalContainer() != null) |
111 | msgs = eBasicRemoveFromContainer(msgs); |
112 | return basicSetRepository__DataType((Repository)otherEnd, msgs); |
113 | } |
114 | return super.eInverseAdd(otherEnd, featureID, msgs); |
115 | } |
116 | |
117 | /** |
118 | * <!-- begin-user-doc --> |
119 | * <!-- end-user-doc --> |
120 | * @generated |
121 | */ |
122 | @Override |
123 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { |
124 | switch (featureID) { |
125 | case RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE: |
126 | return basicSetRepository__DataType(null, msgs); |
127 | } |
128 | return super.eInverseRemove(otherEnd, featureID, msgs); |
129 | } |
130 | |
131 | /** |
132 | * <!-- begin-user-doc --> |
133 | * <!-- end-user-doc --> |
134 | * @generated |
135 | */ |
136 | @Override |
137 | public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { |
138 | switch (eContainerFeatureID()) { |
139 | case RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE: |
140 | return eInternalContainer().eInverseRemove(this, RepositoryPackage.REPOSITORY__DATA_TYPES_REPOSITORY, Repository.class, msgs); |
141 | } |
142 | return super.eBasicRemoveFromContainerFeature(msgs); |
143 | } |
144 | |
145 | /** |
146 | * <!-- begin-user-doc --> |
147 | * <!-- end-user-doc --> |
148 | * @generated |
149 | */ |
150 | @Override |
151 | public Object eGet(int featureID, boolean resolve, boolean coreType) { |
152 | switch (featureID) { |
153 | case RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE: |
154 | return getRepository__DataType(); |
155 | } |
156 | return super.eGet(featureID, resolve, coreType); |
157 | } |
158 | |
159 | /** |
160 | * <!-- begin-user-doc --> |
161 | * <!-- end-user-doc --> |
162 | * @generated |
163 | */ |
164 | @Override |
165 | public void eSet(int featureID, Object newValue) { |
166 | switch (featureID) { |
167 | case RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE: |
168 | setRepository__DataType((Repository)newValue); |
169 | return; |
170 | } |
171 | super.eSet(featureID, newValue); |
172 | } |
173 | |
174 | /** |
175 | * <!-- begin-user-doc --> |
176 | * <!-- end-user-doc --> |
177 | * @generated |
178 | */ |
179 | @Override |
180 | public void eUnset(int featureID) { |
181 | switch (featureID) { |
182 | case RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE: |
183 | setRepository__DataType((Repository)null); |
184 | return; |
185 | } |
186 | super.eUnset(featureID); |
187 | } |
188 | |
189 | /** |
190 | * <!-- begin-user-doc --> |
191 | * <!-- end-user-doc --> |
192 | * @generated |
193 | */ |
194 | @Override |
195 | public boolean eIsSet(int featureID) { |
196 | switch (featureID) { |
197 | case RepositoryPackage.DATA_TYPE__REPOSITORY_DATA_TYPE: |
198 | return getRepository__DataType() != null; |
199 | } |
200 | return super.eIsSet(featureID); |
201 | } |
202 | |
203 | } //DataTypeImpl |