001/**
002 */
003package org.nasdanika.html.model.html.impl;
004
005import java.util.Collection;
006
007import org.eclipse.emf.common.notify.NotificationChain;
008
009import org.eclipse.emf.common.util.EList;
010
011import org.eclipse.emf.ecore.EClass;
012import org.eclipse.emf.ecore.EObject;
013import org.eclipse.emf.ecore.InternalEObject;
014
015import org.eclipse.emf.ecore.util.InternalEList;
016import org.nasdanika.html.model.html.HtmlPackage;
017import org.nasdanika.html.model.html.Page;
018import org.nasdanika.ncore.impl.ModelElementImpl;
019
020/**
021 * <!-- begin-user-doc -->
022 * An implementation of the model object '<em><b>Page</b></em>'.
023 * <!-- end-user-doc -->
024 * <p>
025 * The following features are implemented:
026 * </p>
027 * <ul>
028 *   <li>{@link org.nasdanika.html.model.html.impl.PageImpl#getHead <em>Head</em>}</li>
029 *   <li>{@link org.nasdanika.html.model.html.impl.PageImpl#getBody <em>Body</em>}</li>
030 *   <li>{@link org.nasdanika.html.model.html.impl.PageImpl#getBuilders <em>Builders</em>}</li>
031 *   <li>{@link org.nasdanika.html.model.html.impl.PageImpl#getLanguage <em>Language</em>}</li>
032 *   <li>{@link org.nasdanika.html.model.html.impl.PageImpl#getName <em>Name</em>}</li>
033 *   <li>{@link org.nasdanika.html.model.html.impl.PageImpl#getStylesheets <em>Stylesheets</em>}</li>
034 *   <li>{@link org.nasdanika.html.model.html.impl.PageImpl#getScripts <em>Scripts</em>}</li>
035 * </ul>
036 *
037 * @generated
038 */
039public class PageImpl extends ModelElementImpl implements Page {
040        /**
041         * The default value of the '{@link #getLanguage() <em>Language</em>}' attribute.
042         * <!-- begin-user-doc -->
043         * <!-- end-user-doc -->
044         * @see #getLanguage()
045         * @generated
046         * @ordered
047         */
048        protected static final String LANGUAGE_EDEFAULT = null;
049
050        /**
051         * The default value of the '{@link #getName() <em>Name</em>}' attribute.
052         * <!-- begin-user-doc -->
053         * <!-- end-user-doc -->
054         * @see #getName()
055         * @generated
056         * @ordered
057         */
058        protected static final String NAME_EDEFAULT = null;
059
060        /**
061         * <!-- begin-user-doc -->
062         * <!-- end-user-doc -->
063         * @generated
064         */
065        protected PageImpl() {
066                super();
067        }
068
069        /**
070         * <!-- begin-user-doc -->
071         * <!-- end-user-doc -->
072         * @generated
073         */
074        @Override
075        protected EClass eStaticClass() {
076                return HtmlPackage.Literals.PAGE;
077        }
078
079        /**
080         * <!-- begin-user-doc -->
081         * <!-- end-user-doc -->
082         * @generated
083         */
084        @SuppressWarnings("unchecked")
085        @Override
086        public EList<EObject> getHead() {
087                return (EList<EObject>)eDynamicGet(HtmlPackage.PAGE__HEAD, HtmlPackage.Literals.PAGE__HEAD, true, true);
088        }
089
090        /**
091         * <!-- begin-user-doc -->
092         * <!-- end-user-doc -->
093         * @generated
094         */
095        @SuppressWarnings("unchecked")
096        @Override
097        public EList<EObject> getBody() {
098                return (EList<EObject>)eDynamicGet(HtmlPackage.PAGE__BODY, HtmlPackage.Literals.PAGE__BODY, true, true);
099        }
100
101        /**
102         * <!-- begin-user-doc -->
103         * <!-- end-user-doc -->
104         * @generated
105         */
106        @SuppressWarnings("unchecked")
107        @Override
108        public EList<EObject> getBuilders() {
109                return (EList<EObject>)eDynamicGet(HtmlPackage.PAGE__BUILDERS, HtmlPackage.Literals.PAGE__BUILDERS, true, true);
110        }
111
112        /**
113         * <!-- begin-user-doc -->
114         * <!-- end-user-doc -->
115         * @generated
116         */
117        @Override
118        public String getLanguage() {
119                return (String)eDynamicGet(HtmlPackage.PAGE__LANGUAGE, HtmlPackage.Literals.PAGE__LANGUAGE, true, true);
120        }
121
122        /**
123         * <!-- begin-user-doc -->
124         * <!-- end-user-doc -->
125         * @generated
126         */
127        @Override
128        public void setLanguage(String newLanguage) {
129                eDynamicSet(HtmlPackage.PAGE__LANGUAGE, HtmlPackage.Literals.PAGE__LANGUAGE, newLanguage);
130        }
131
132        /**
133         * <!-- begin-user-doc -->
134         * <!-- end-user-doc -->
135         * @generated
136         */
137        @Override
138        public String getName() {
139                return (String)eDynamicGet(HtmlPackage.PAGE__NAME, HtmlPackage.Literals.PAGE__NAME, true, true);
140        }
141
142        /**
143         * <!-- begin-user-doc -->
144         * <!-- end-user-doc -->
145         * @generated
146         */
147        @Override
148        public void setName(String newName) {
149                eDynamicSet(HtmlPackage.PAGE__NAME, HtmlPackage.Literals.PAGE__NAME, newName);
150        }
151
152        /**
153         * <!-- begin-user-doc -->
154         * <!-- end-user-doc -->
155         * @generated
156         */
157        @SuppressWarnings("unchecked")
158        @Override
159        public EList<String> getStylesheets() {
160                return (EList<String>)eDynamicGet(HtmlPackage.PAGE__STYLESHEETS, HtmlPackage.Literals.PAGE__STYLESHEETS, true, true);
161        }
162
163        /**
164         * <!-- begin-user-doc -->
165         * <!-- end-user-doc -->
166         * @generated
167         */
168        @SuppressWarnings("unchecked")
169        @Override
170        public EList<String> getScripts() {
171                return (EList<String>)eDynamicGet(HtmlPackage.PAGE__SCRIPTS, HtmlPackage.Literals.PAGE__SCRIPTS, true, true);
172        }
173
174        /**
175         * <!-- begin-user-doc -->
176         * <!-- end-user-doc -->
177         * @generated
178         */
179        @Override
180        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
181                switch (featureID) {
182                        case HtmlPackage.PAGE__HEAD:
183                                return ((InternalEList<?>)getHead()).basicRemove(otherEnd, msgs);
184                        case HtmlPackage.PAGE__BODY:
185                                return ((InternalEList<?>)getBody()).basicRemove(otherEnd, msgs);
186                        case HtmlPackage.PAGE__BUILDERS:
187                                return ((InternalEList<?>)getBuilders()).basicRemove(otherEnd, msgs);
188                }
189                return super.eInverseRemove(otherEnd, featureID, msgs);
190        }
191
192        /**
193         * <!-- begin-user-doc -->
194         * <!-- end-user-doc -->
195         * @generated
196         */
197        @Override
198        public Object eGet(int featureID, boolean resolve, boolean coreType) {
199                switch (featureID) {
200                        case HtmlPackage.PAGE__HEAD:
201                                return getHead();
202                        case HtmlPackage.PAGE__BODY:
203                                return getBody();
204                        case HtmlPackage.PAGE__BUILDERS:
205                                return getBuilders();
206                        case HtmlPackage.PAGE__LANGUAGE:
207                                return getLanguage();
208                        case HtmlPackage.PAGE__NAME:
209                                return getName();
210                        case HtmlPackage.PAGE__STYLESHEETS:
211                                return getStylesheets();
212                        case HtmlPackage.PAGE__SCRIPTS:
213                                return getScripts();
214                }
215                return super.eGet(featureID, resolve, coreType);
216        }
217
218        /**
219         * <!-- begin-user-doc -->
220         * <!-- end-user-doc -->
221         * @generated
222         */
223        @SuppressWarnings("unchecked")
224        @Override
225        public void eSet(int featureID, Object newValue) {
226                switch (featureID) {
227                        case HtmlPackage.PAGE__HEAD:
228                                getHead().clear();
229                                getHead().addAll((Collection<? extends EObject>)newValue);
230                                return;
231                        case HtmlPackage.PAGE__BODY:
232                                getBody().clear();
233                                getBody().addAll((Collection<? extends EObject>)newValue);
234                                return;
235                        case HtmlPackage.PAGE__BUILDERS:
236                                getBuilders().clear();
237                                getBuilders().addAll((Collection<? extends EObject>)newValue);
238                                return;
239                        case HtmlPackage.PAGE__LANGUAGE:
240                                setLanguage((String)newValue);
241                                return;
242                        case HtmlPackage.PAGE__NAME:
243                                setName((String)newValue);
244                                return;
245                        case HtmlPackage.PAGE__STYLESHEETS:
246                                getStylesheets().clear();
247                                getStylesheets().addAll((Collection<? extends String>)newValue);
248                                return;
249                        case HtmlPackage.PAGE__SCRIPTS:
250                                getScripts().clear();
251                                getScripts().addAll((Collection<? extends String>)newValue);
252                                return;
253                }
254                super.eSet(featureID, newValue);
255        }
256
257        /**
258         * <!-- begin-user-doc -->
259         * <!-- end-user-doc -->
260         * @generated
261         */
262        @Override
263        public void eUnset(int featureID) {
264                switch (featureID) {
265                        case HtmlPackage.PAGE__HEAD:
266                                getHead().clear();
267                                return;
268                        case HtmlPackage.PAGE__BODY:
269                                getBody().clear();
270                                return;
271                        case HtmlPackage.PAGE__BUILDERS:
272                                getBuilders().clear();
273                                return;
274                        case HtmlPackage.PAGE__LANGUAGE:
275                                setLanguage(LANGUAGE_EDEFAULT);
276                                return;
277                        case HtmlPackage.PAGE__NAME:
278                                setName(NAME_EDEFAULT);
279                                return;
280                        case HtmlPackage.PAGE__STYLESHEETS:
281                                getStylesheets().clear();
282                                return;
283                        case HtmlPackage.PAGE__SCRIPTS:
284                                getScripts().clear();
285                                return;
286                }
287                super.eUnset(featureID);
288        }
289
290        /**
291         * <!-- begin-user-doc -->
292         * <!-- end-user-doc -->
293         * @generated
294         */
295        @Override
296        public boolean eIsSet(int featureID) {
297                switch (featureID) {
298                        case HtmlPackage.PAGE__HEAD:
299                                return !getHead().isEmpty();
300                        case HtmlPackage.PAGE__BODY:
301                                return !getBody().isEmpty();
302                        case HtmlPackage.PAGE__BUILDERS:
303                                return !getBuilders().isEmpty();
304                        case HtmlPackage.PAGE__LANGUAGE:
305                                return LANGUAGE_EDEFAULT == null ? getLanguage() != null : !LANGUAGE_EDEFAULT.equals(getLanguage());
306                        case HtmlPackage.PAGE__NAME:
307                                return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
308                        case HtmlPackage.PAGE__STYLESHEETS:
309                                return !getStylesheets().isEmpty();
310                        case HtmlPackage.PAGE__SCRIPTS:
311                                return !getScripts().isEmpty();
312                }
313                return super.eIsSet(featureID);
314        }
315
316} //PageImpl