001/**
002 */
003package org.nasdanika.html.model.bootstrap.impl;
004
005import org.eclipse.emf.common.notify.NotificationChain;
006
007import org.eclipse.emf.common.util.BasicEMap;
008import org.eclipse.emf.common.util.EMap;
009
010import org.eclipse.emf.ecore.EClass;
011import org.eclipse.emf.ecore.EObject;
012import org.eclipse.emf.ecore.InternalEObject;
013
014import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
015
016import org.nasdanika.html.model.bootstrap.Appearance;
017import org.nasdanika.html.model.bootstrap.BootstrapPackage;
018
019/**
020 * <!-- begin-user-doc -->
021 * An implementation of the model object '<em><b>Appearance Entry</b></em>'.
022 * <!-- end-user-doc -->
023 * <p>
024 * The following features are implemented:
025 * </p>
026 * <ul>
027 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.AppearanceEntryImpl#getTypedKey <em>Key</em>}</li>
028 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.AppearanceEntryImpl#getTypedValue <em>Value</em>}</li>
029 * </ul>
030 *
031 * @generated
032 */
033public class AppearanceEntryImpl extends MinimalEObjectImpl.Container implements BasicEMap.Entry<String,Appearance> {
034        /**
035         * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
036         * <!-- begin-user-doc -->
037         * <!-- end-user-doc -->
038         * @see #getTypedKey()
039         * @generated
040         * @ordered
041         */
042        protected static final String KEY_EDEFAULT = null;
043
044        /**
045         * <!-- begin-user-doc -->
046         * <!-- end-user-doc -->
047         * @generated
048         */
049        protected AppearanceEntryImpl() {
050                super();
051        }
052
053        /**
054         * <!-- begin-user-doc -->
055         * <!-- end-user-doc -->
056         * @generated
057         */
058        @Override
059        protected EClass eStaticClass() {
060                return BootstrapPackage.Literals.APPEARANCE_ENTRY;
061        }
062
063        /**
064         * <!-- begin-user-doc -->
065         * <!-- end-user-doc -->
066         * @generated
067         */
068        @Override
069        protected int eStaticFeatureCount() {
070                return 0;
071        }
072
073        /**
074         * <!-- begin-user-doc -->
075         * <!-- end-user-doc -->
076         * @generated
077         */
078        public String getTypedKey() {
079                return (String)eDynamicGet(BootstrapPackage.APPEARANCE_ENTRY__KEY, BootstrapPackage.Literals.APPEARANCE_ENTRY__KEY, true, true);
080        }
081
082        /**
083         * <!-- begin-user-doc -->
084         * <!-- end-user-doc -->
085         * @generated
086         */
087        public void setTypedKey(String newKey) {
088                eDynamicSet(BootstrapPackage.APPEARANCE_ENTRY__KEY, BootstrapPackage.Literals.APPEARANCE_ENTRY__KEY, newKey);
089        }
090
091        /**
092         * <!-- begin-user-doc -->
093         * <!-- end-user-doc -->
094         * @generated
095         */
096        public Appearance getTypedValue() {
097                return (Appearance)eDynamicGet(BootstrapPackage.APPEARANCE_ENTRY__VALUE, BootstrapPackage.Literals.APPEARANCE_ENTRY__VALUE, true, true);
098        }
099
100        /**
101         * <!-- begin-user-doc -->
102         * <!-- end-user-doc -->
103         * @generated
104         */
105        public NotificationChain basicSetTypedValue(Appearance newValue, NotificationChain msgs) {
106                msgs = eDynamicInverseAdd((InternalEObject)newValue, BootstrapPackage.APPEARANCE_ENTRY__VALUE, msgs);
107                return msgs;
108        }
109
110        /**
111         * <!-- begin-user-doc -->
112         * <!-- end-user-doc -->
113         * @generated
114         */
115        public void setTypedValue(Appearance newValue) {
116                eDynamicSet(BootstrapPackage.APPEARANCE_ENTRY__VALUE, BootstrapPackage.Literals.APPEARANCE_ENTRY__VALUE, newValue);
117        }
118
119        /**
120         * <!-- begin-user-doc -->
121         * <!-- end-user-doc -->
122         * @generated
123         */
124        @Override
125        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
126                switch (featureID) {
127                        case BootstrapPackage.APPEARANCE_ENTRY__VALUE:
128                                return basicSetTypedValue(null, msgs);
129                }
130                return super.eInverseRemove(otherEnd, featureID, msgs);
131        }
132
133        /**
134         * <!-- begin-user-doc -->
135         * <!-- end-user-doc -->
136         * @generated
137         */
138        @Override
139        public Object eGet(int featureID, boolean resolve, boolean coreType) {
140                switch (featureID) {
141                        case BootstrapPackage.APPEARANCE_ENTRY__KEY:
142                                return getTypedKey();
143                        case BootstrapPackage.APPEARANCE_ENTRY__VALUE:
144                                return getTypedValue();
145                }
146                return super.eGet(featureID, resolve, coreType);
147        }
148
149        /**
150         * <!-- begin-user-doc -->
151         * <!-- end-user-doc -->
152         * @generated
153         */
154        @Override
155        public void eSet(int featureID, Object newValue) {
156                switch (featureID) {
157                        case BootstrapPackage.APPEARANCE_ENTRY__KEY:
158                                setTypedKey((String)newValue);
159                                return;
160                        case BootstrapPackage.APPEARANCE_ENTRY__VALUE:
161                                setTypedValue((Appearance)newValue);
162                                return;
163                }
164                super.eSet(featureID, newValue);
165        }
166
167        /**
168         * <!-- begin-user-doc -->
169         * <!-- end-user-doc -->
170         * @generated
171         */
172        @Override
173        public void eUnset(int featureID) {
174                switch (featureID) {
175                        case BootstrapPackage.APPEARANCE_ENTRY__KEY:
176                                setTypedKey(KEY_EDEFAULT);
177                                return;
178                        case BootstrapPackage.APPEARANCE_ENTRY__VALUE:
179                                setTypedValue((Appearance)null);
180                                return;
181                }
182                super.eUnset(featureID);
183        }
184
185        /**
186         * <!-- begin-user-doc -->
187         * <!-- end-user-doc -->
188         * @generated
189         */
190        @Override
191        public boolean eIsSet(int featureID) {
192                switch (featureID) {
193                        case BootstrapPackage.APPEARANCE_ENTRY__KEY:
194                                return KEY_EDEFAULT == null ? getTypedKey() != null : !KEY_EDEFAULT.equals(getTypedKey());
195                        case BootstrapPackage.APPEARANCE_ENTRY__VALUE:
196                                return getTypedValue() != null;
197                }
198                return super.eIsSet(featureID);
199        }
200
201        /**
202         * <!-- begin-user-doc -->
203         * <!-- end-user-doc -->
204         * @generated
205         */
206        protected int hash = -1;
207
208        /**
209         * <!-- begin-user-doc -->
210         * <!-- end-user-doc -->
211         * @generated
212         */
213        @Override
214        public int getHash() {
215                if (hash == -1) {
216                        Object theKey = getKey();
217                        hash = (theKey == null ? 0 : theKey.hashCode());
218                }
219                return hash;
220        }
221
222        /**
223         * <!-- begin-user-doc -->
224         * <!-- end-user-doc -->
225         * @generated
226         */
227        @Override
228        public void setHash(int hash) {
229                this.hash = hash;
230        }
231
232        /**
233         * <!-- begin-user-doc -->
234         * <!-- end-user-doc -->
235         * @generated
236         */
237        @Override
238        public String getKey() {
239                return getTypedKey();
240        }
241
242        /**
243         * <!-- begin-user-doc -->
244         * <!-- end-user-doc -->
245         * @generated
246         */
247        @Override
248        public void setKey(String key) {
249                setTypedKey(key);
250        }
251
252        /**
253         * <!-- begin-user-doc -->
254         * <!-- end-user-doc -->
255         * @generated
256         */
257        @Override
258        public Appearance getValue() {
259                return getTypedValue();
260        }
261
262        /**
263         * <!-- begin-user-doc -->
264         * <!-- end-user-doc -->
265         * @generated
266         */
267        @Override
268        public Appearance setValue(Appearance value) {
269                Appearance oldValue = getValue();
270                setTypedValue(value);
271                return oldValue;
272        }
273
274        /**
275         * <!-- begin-user-doc -->
276         * <!-- end-user-doc -->
277         * @generated
278         */
279        @SuppressWarnings("unchecked")
280        public EMap<String, Appearance> getEMap() {
281                EObject container = eContainer();
282                return container == null ? null : (EMap<String, Appearance>)container.eGet(eContainmentFeature());
283        }
284
285} //AppearanceEntryImpl