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