001/**
002 */
003package org.nasdanika.html.model.bootstrap.impl;
004
005import org.eclipse.emf.common.notify.NotificationChain;
006
007import org.eclipse.emf.ecore.EClass;
008import org.eclipse.emf.ecore.InternalEObject;
009
010import org.nasdanika.html.model.bootstrap.BootstrapPackage;
011import org.nasdanika.html.model.bootstrap.Table;
012import org.nasdanika.html.model.bootstrap.TableConfiguration;
013import org.nasdanika.html.model.bootstrap.TableHeader;
014import org.nasdanika.html.model.bootstrap.TableSection;
015
016/**
017 * <!-- begin-user-doc -->
018 * An implementation of the model object '<em><b>Table</b></em>'.
019 * <!-- end-user-doc -->
020 * <p>
021 * The following features are implemented:
022 * </p>
023 * <ul>
024 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#isDark <em>Dark</em>}</li>
025 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#isStriped <em>Striped</em>}</li>
026 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#isBordered <em>Bordered</em>}</li>
027 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#isBorderless <em>Borderless</em>}</li>
028 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#isHover <em>Hover</em>}</li>
029 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#isSmall <em>Small</em>}</li>
030 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#getHeader <em>Header</em>}</li>
031 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#getBody <em>Body</em>}</li>
032 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TableImpl#getFooter <em>Footer</em>}</li>
033 * </ul>
034 *
035 * @generated
036 */
037public class TableImpl extends TableRowContainerImpl implements Table {
038        /**
039         * The default value of the '{@link #isDark() <em>Dark</em>}' attribute.
040         * <!-- begin-user-doc -->
041         * <!-- end-user-doc -->
042         * @see #isDark()
043         * @generated
044         * @ordered
045         */
046        protected static final boolean DARK_EDEFAULT = false;
047
048        /**
049         * The default value of the '{@link #isStriped() <em>Striped</em>}' attribute.
050         * <!-- begin-user-doc -->
051         * <!-- end-user-doc -->
052         * @see #isStriped()
053         * @generated
054         * @ordered
055         */
056        protected static final boolean STRIPED_EDEFAULT = false;
057
058        /**
059         * The default value of the '{@link #isBordered() <em>Bordered</em>}' attribute.
060         * <!-- begin-user-doc -->
061         * <!-- end-user-doc -->
062         * @see #isBordered()
063         * @generated
064         * @ordered
065         */
066        protected static final boolean BORDERED_EDEFAULT = false;
067
068        /**
069         * The default value of the '{@link #isBorderless() <em>Borderless</em>}' attribute.
070         * <!-- begin-user-doc -->
071         * <!-- end-user-doc -->
072         * @see #isBorderless()
073         * @generated
074         * @ordered
075         */
076        protected static final boolean BORDERLESS_EDEFAULT = false;
077
078        /**
079         * The default value of the '{@link #isHover() <em>Hover</em>}' attribute.
080         * <!-- begin-user-doc -->
081         * <!-- end-user-doc -->
082         * @see #isHover()
083         * @generated
084         * @ordered
085         */
086        protected static final boolean HOVER_EDEFAULT = false;
087
088        /**
089         * The default value of the '{@link #isSmall() <em>Small</em>}' attribute.
090         * <!-- begin-user-doc -->
091         * <!-- end-user-doc -->
092         * @see #isSmall()
093         * @generated
094         * @ordered
095         */
096        protected static final boolean SMALL_EDEFAULT = false;
097
098        /**
099         * <!-- begin-user-doc -->
100         * <!-- end-user-doc -->
101         * @generated
102         */
103        protected TableImpl() {
104                super();
105        }
106
107        /**
108         * <!-- begin-user-doc -->
109         * <!-- end-user-doc -->
110         * @generated
111         */
112        @Override
113        protected EClass eStaticClass() {
114                return BootstrapPackage.Literals.TABLE;
115        }
116
117        /**
118         * <!-- begin-user-doc -->
119         * <!-- end-user-doc -->
120         * @generated
121         */
122        @Override
123        public boolean isDark() {
124                return (Boolean)eDynamicGet(BootstrapPackage.TABLE__DARK, BootstrapPackage.Literals.TABLE_CONFIGURATION__DARK, true, true);
125        }
126
127        /**
128         * <!-- begin-user-doc -->
129         * <!-- end-user-doc -->
130         * @generated
131         */
132        @Override
133        public void setDark(boolean newDark) {
134                eDynamicSet(BootstrapPackage.TABLE__DARK, BootstrapPackage.Literals.TABLE_CONFIGURATION__DARK, newDark);
135        }
136
137        /**
138         * <!-- begin-user-doc -->
139         * <!-- end-user-doc -->
140         * @generated
141         */
142        @Override
143        public boolean isStriped() {
144                return (Boolean)eDynamicGet(BootstrapPackage.TABLE__STRIPED, BootstrapPackage.Literals.TABLE_CONFIGURATION__STRIPED, true, true);
145        }
146
147        /**
148         * <!-- begin-user-doc -->
149         * <!-- end-user-doc -->
150         * @generated
151         */
152        @Override
153        public void setStriped(boolean newStriped) {
154                eDynamicSet(BootstrapPackage.TABLE__STRIPED, BootstrapPackage.Literals.TABLE_CONFIGURATION__STRIPED, newStriped);
155        }
156
157        /**
158         * <!-- begin-user-doc -->
159         * <!-- end-user-doc -->
160         * @generated
161         */
162        @Override
163        public boolean isBordered() {
164                return (Boolean)eDynamicGet(BootstrapPackage.TABLE__BORDERED, BootstrapPackage.Literals.TABLE_CONFIGURATION__BORDERED, true, true);
165        }
166
167        /**
168         * <!-- begin-user-doc -->
169         * <!-- end-user-doc -->
170         * @generated
171         */
172        @Override
173        public void setBordered(boolean newBordered) {
174                eDynamicSet(BootstrapPackage.TABLE__BORDERED, BootstrapPackage.Literals.TABLE_CONFIGURATION__BORDERED, newBordered);
175        }
176
177        /**
178         * <!-- begin-user-doc -->
179         * <!-- end-user-doc -->
180         * @generated
181         */
182        @Override
183        public boolean isBorderless() {
184                return (Boolean)eDynamicGet(BootstrapPackage.TABLE__BORDERLESS, BootstrapPackage.Literals.TABLE_CONFIGURATION__BORDERLESS, true, true);
185        }
186
187        /**
188         * <!-- begin-user-doc -->
189         * <!-- end-user-doc -->
190         * @generated
191         */
192        @Override
193        public void setBorderless(boolean newBorderless) {
194                eDynamicSet(BootstrapPackage.TABLE__BORDERLESS, BootstrapPackage.Literals.TABLE_CONFIGURATION__BORDERLESS, newBorderless);
195        }
196
197        /**
198         * <!-- begin-user-doc -->
199         * <!-- end-user-doc -->
200         * @generated
201         */
202        @Override
203        public boolean isHover() {
204                return (Boolean)eDynamicGet(BootstrapPackage.TABLE__HOVER, BootstrapPackage.Literals.TABLE_CONFIGURATION__HOVER, true, true);
205        }
206
207        /**
208         * <!-- begin-user-doc -->
209         * <!-- end-user-doc -->
210         * @generated
211         */
212        @Override
213        public void setHover(boolean newHover) {
214                eDynamicSet(BootstrapPackage.TABLE__HOVER, BootstrapPackage.Literals.TABLE_CONFIGURATION__HOVER, newHover);
215        }
216
217        /**
218         * <!-- begin-user-doc -->
219         * <!-- end-user-doc -->
220         * @generated
221         */
222        @Override
223        public boolean isSmall() {
224                return (Boolean)eDynamicGet(BootstrapPackage.TABLE__SMALL, BootstrapPackage.Literals.TABLE_CONFIGURATION__SMALL, true, true);
225        }
226
227        /**
228         * <!-- begin-user-doc -->
229         * <!-- end-user-doc -->
230         * @generated
231         */
232        @Override
233        public void setSmall(boolean newSmall) {
234                eDynamicSet(BootstrapPackage.TABLE__SMALL, BootstrapPackage.Literals.TABLE_CONFIGURATION__SMALL, newSmall);
235        }
236
237        /**
238         * <!-- begin-user-doc -->
239         * <!-- end-user-doc -->
240         * @generated
241         */
242        @Override
243        public TableHeader getHeader() {
244                return (TableHeader)eDynamicGet(BootstrapPackage.TABLE__HEADER, BootstrapPackage.Literals.TABLE__HEADER, true, true);
245        }
246
247        /**
248         * <!-- begin-user-doc -->
249         * <!-- end-user-doc -->
250         * @generated
251         */
252        public NotificationChain basicSetHeader(TableHeader newHeader, NotificationChain msgs) {
253                msgs = eDynamicInverseAdd((InternalEObject)newHeader, BootstrapPackage.TABLE__HEADER, msgs);
254                return msgs;
255        }
256
257        /**
258         * <!-- begin-user-doc -->
259         * <!-- end-user-doc -->
260         * @generated
261         */
262        @Override
263        public void setHeader(TableHeader newHeader) {
264                eDynamicSet(BootstrapPackage.TABLE__HEADER, BootstrapPackage.Literals.TABLE__HEADER, newHeader);
265        }
266
267        /**
268         * <!-- begin-user-doc -->
269         * <!-- end-user-doc -->
270         * @generated
271         */
272        @Override
273        public TableSection getBody() {
274                return (TableSection)eDynamicGet(BootstrapPackage.TABLE__BODY, BootstrapPackage.Literals.TABLE__BODY, true, true);
275        }
276
277        /**
278         * <!-- begin-user-doc -->
279         * <!-- end-user-doc -->
280         * @generated
281         */
282        public NotificationChain basicSetBody(TableSection newBody, NotificationChain msgs) {
283                msgs = eDynamicInverseAdd((InternalEObject)newBody, BootstrapPackage.TABLE__BODY, msgs);
284                return msgs;
285        }
286
287        /**
288         * <!-- begin-user-doc -->
289         * <!-- end-user-doc -->
290         * @generated
291         */
292        @Override
293        public void setBody(TableSection newBody) {
294                eDynamicSet(BootstrapPackage.TABLE__BODY, BootstrapPackage.Literals.TABLE__BODY, newBody);
295        }
296
297        /**
298         * <!-- begin-user-doc -->
299         * <!-- end-user-doc -->
300         * @generated
301         */
302        @Override
303        public TableSection getFooter() {
304                return (TableSection)eDynamicGet(BootstrapPackage.TABLE__FOOTER, BootstrapPackage.Literals.TABLE__FOOTER, true, true);
305        }
306
307        /**
308         * <!-- begin-user-doc -->
309         * <!-- end-user-doc -->
310         * @generated
311         */
312        public NotificationChain basicSetFooter(TableSection newFooter, NotificationChain msgs) {
313                msgs = eDynamicInverseAdd((InternalEObject)newFooter, BootstrapPackage.TABLE__FOOTER, msgs);
314                return msgs;
315        }
316
317        /**
318         * <!-- begin-user-doc -->
319         * <!-- end-user-doc -->
320         * @generated
321         */
322        @Override
323        public void setFooter(TableSection newFooter) {
324                eDynamicSet(BootstrapPackage.TABLE__FOOTER, BootstrapPackage.Literals.TABLE__FOOTER, newFooter);
325        }
326
327        /**
328         * <!-- begin-user-doc -->
329         * <!-- end-user-doc -->
330         * @generated
331         */
332        @Override
333        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
334                switch (featureID) {
335                        case BootstrapPackage.TABLE__HEADER:
336                                return basicSetHeader(null, msgs);
337                        case BootstrapPackage.TABLE__BODY:
338                                return basicSetBody(null, msgs);
339                        case BootstrapPackage.TABLE__FOOTER:
340                                return basicSetFooter(null, msgs);
341                }
342                return super.eInverseRemove(otherEnd, featureID, msgs);
343        }
344
345        /**
346         * <!-- begin-user-doc -->
347         * <!-- end-user-doc -->
348         * @generated
349         */
350        @Override
351        public Object eGet(int featureID, boolean resolve, boolean coreType) {
352                switch (featureID) {
353                        case BootstrapPackage.TABLE__DARK:
354                                return isDark();
355                        case BootstrapPackage.TABLE__STRIPED:
356                                return isStriped();
357                        case BootstrapPackage.TABLE__BORDERED:
358                                return isBordered();
359                        case BootstrapPackage.TABLE__BORDERLESS:
360                                return isBorderless();
361                        case BootstrapPackage.TABLE__HOVER:
362                                return isHover();
363                        case BootstrapPackage.TABLE__SMALL:
364                                return isSmall();
365                        case BootstrapPackage.TABLE__HEADER:
366                                return getHeader();
367                        case BootstrapPackage.TABLE__BODY:
368                                return getBody();
369                        case BootstrapPackage.TABLE__FOOTER:
370                                return getFooter();
371                }
372                return super.eGet(featureID, resolve, coreType);
373        }
374
375        /**
376         * <!-- begin-user-doc -->
377         * <!-- end-user-doc -->
378         * @generated
379         */
380        @Override
381        public void eSet(int featureID, Object newValue) {
382                switch (featureID) {
383                        case BootstrapPackage.TABLE__DARK:
384                                setDark((Boolean)newValue);
385                                return;
386                        case BootstrapPackage.TABLE__STRIPED:
387                                setStriped((Boolean)newValue);
388                                return;
389                        case BootstrapPackage.TABLE__BORDERED:
390                                setBordered((Boolean)newValue);
391                                return;
392                        case BootstrapPackage.TABLE__BORDERLESS:
393                                setBorderless((Boolean)newValue);
394                                return;
395                        case BootstrapPackage.TABLE__HOVER:
396                                setHover((Boolean)newValue);
397                                return;
398                        case BootstrapPackage.TABLE__SMALL:
399                                setSmall((Boolean)newValue);
400                                return;
401                        case BootstrapPackage.TABLE__HEADER:
402                                setHeader((TableHeader)newValue);
403                                return;
404                        case BootstrapPackage.TABLE__BODY:
405                                setBody((TableSection)newValue);
406                                return;
407                        case BootstrapPackage.TABLE__FOOTER:
408                                setFooter((TableSection)newValue);
409                                return;
410                }
411                super.eSet(featureID, newValue);
412        }
413
414        /**
415         * <!-- begin-user-doc -->
416         * <!-- end-user-doc -->
417         * @generated
418         */
419        @Override
420        public void eUnset(int featureID) {
421                switch (featureID) {
422                        case BootstrapPackage.TABLE__DARK:
423                                setDark(DARK_EDEFAULT);
424                                return;
425                        case BootstrapPackage.TABLE__STRIPED:
426                                setStriped(STRIPED_EDEFAULT);
427                                return;
428                        case BootstrapPackage.TABLE__BORDERED:
429                                setBordered(BORDERED_EDEFAULT);
430                                return;
431                        case BootstrapPackage.TABLE__BORDERLESS:
432                                setBorderless(BORDERLESS_EDEFAULT);
433                                return;
434                        case BootstrapPackage.TABLE__HOVER:
435                                setHover(HOVER_EDEFAULT);
436                                return;
437                        case BootstrapPackage.TABLE__SMALL:
438                                setSmall(SMALL_EDEFAULT);
439                                return;
440                        case BootstrapPackage.TABLE__HEADER:
441                                setHeader((TableHeader)null);
442                                return;
443                        case BootstrapPackage.TABLE__BODY:
444                                setBody((TableSection)null);
445                                return;
446                        case BootstrapPackage.TABLE__FOOTER:
447                                setFooter((TableSection)null);
448                                return;
449                }
450                super.eUnset(featureID);
451        }
452
453        /**
454         * <!-- begin-user-doc -->
455         * <!-- end-user-doc -->
456         * @generated
457         */
458        @Override
459        public boolean eIsSet(int featureID) {
460                switch (featureID) {
461                        case BootstrapPackage.TABLE__DARK:
462                                return isDark() != DARK_EDEFAULT;
463                        case BootstrapPackage.TABLE__STRIPED:
464                                return isStriped() != STRIPED_EDEFAULT;
465                        case BootstrapPackage.TABLE__BORDERED:
466                                return isBordered() != BORDERED_EDEFAULT;
467                        case BootstrapPackage.TABLE__BORDERLESS:
468                                return isBorderless() != BORDERLESS_EDEFAULT;
469                        case BootstrapPackage.TABLE__HOVER:
470                                return isHover() != HOVER_EDEFAULT;
471                        case BootstrapPackage.TABLE__SMALL:
472                                return isSmall() != SMALL_EDEFAULT;
473                        case BootstrapPackage.TABLE__HEADER:
474                                return getHeader() != null;
475                        case BootstrapPackage.TABLE__BODY:
476                                return getBody() != null;
477                        case BootstrapPackage.TABLE__FOOTER:
478                                return getFooter() != null;
479                }
480                return super.eIsSet(featureID);
481        }
482
483        /**
484         * <!-- begin-user-doc -->
485         * <!-- end-user-doc -->
486         * @generated
487         */
488        @Override
489        public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
490                if (baseClass == TableConfiguration.class) {
491                        switch (derivedFeatureID) {
492                                case BootstrapPackage.TABLE__DARK: return BootstrapPackage.TABLE_CONFIGURATION__DARK;
493                                case BootstrapPackage.TABLE__STRIPED: return BootstrapPackage.TABLE_CONFIGURATION__STRIPED;
494                                case BootstrapPackage.TABLE__BORDERED: return BootstrapPackage.TABLE_CONFIGURATION__BORDERED;
495                                case BootstrapPackage.TABLE__BORDERLESS: return BootstrapPackage.TABLE_CONFIGURATION__BORDERLESS;
496                                case BootstrapPackage.TABLE__HOVER: return BootstrapPackage.TABLE_CONFIGURATION__HOVER;
497                                case BootstrapPackage.TABLE__SMALL: return BootstrapPackage.TABLE_CONFIGURATION__SMALL;
498                                default: return -1;
499                        }
500                }
501                return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
502        }
503
504        /**
505         * <!-- begin-user-doc -->
506         * <!-- end-user-doc -->
507         * @generated
508         */
509        @Override
510        public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
511                if (baseClass == TableConfiguration.class) {
512                        switch (baseFeatureID) {
513                                case BootstrapPackage.TABLE_CONFIGURATION__DARK: return BootstrapPackage.TABLE__DARK;
514                                case BootstrapPackage.TABLE_CONFIGURATION__STRIPED: return BootstrapPackage.TABLE__STRIPED;
515                                case BootstrapPackage.TABLE_CONFIGURATION__BORDERED: return BootstrapPackage.TABLE__BORDERED;
516                                case BootstrapPackage.TABLE_CONFIGURATION__BORDERLESS: return BootstrapPackage.TABLE__BORDERLESS;
517                                case BootstrapPackage.TABLE_CONFIGURATION__HOVER: return BootstrapPackage.TABLE__HOVER;
518                                case BootstrapPackage.TABLE_CONFIGURATION__SMALL: return BootstrapPackage.TABLE__SMALL;
519                                default: return -1;
520                        }
521                }
522                return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
523        }
524
525} //TableImpl