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.Appearance;
011import org.nasdanika.html.model.bootstrap.BootstrapElement;
012import org.nasdanika.html.model.bootstrap.BootstrapPackage;
013import org.nasdanika.html.model.bootstrap.Tag;
014
015/**
016 * <!-- begin-user-doc -->
017 * An implementation of the model object '<em><b>Tag</b></em>'.
018 * <!-- end-user-doc -->
019 * <p>
020 * The following features are implemented:
021 * </p>
022 * <ul>
023 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.TagImpl#getAppearance <em>Appearance</em>}</li>
024 * </ul>
025 *
026 * @generated
027 */
028public class TagImpl extends org.nasdanika.html.model.html.impl.TagImpl implements Tag {
029        /**
030         * <!-- begin-user-doc -->
031         * <!-- end-user-doc -->
032         * @generated
033         */
034        protected TagImpl() {
035                super();
036        }
037
038        /**
039         * <!-- begin-user-doc -->
040         * <!-- end-user-doc -->
041         * @generated
042         */
043        @Override
044        protected EClass eStaticClass() {
045                return BootstrapPackage.Literals.TAG;
046        }
047
048        /**
049         * <!-- begin-user-doc -->
050         * <!-- end-user-doc -->
051         * @generated
052         */
053        @Override
054        public Appearance getAppearance() {
055                return (Appearance)eDynamicGet(BootstrapPackage.TAG__APPEARANCE, BootstrapPackage.Literals.BOOTSTRAP_ELEMENT__APPEARANCE, true, true);
056        }
057
058        /**
059         * <!-- begin-user-doc -->
060         * <!-- end-user-doc -->
061         * @generated
062         */
063        public NotificationChain basicSetAppearance(Appearance newAppearance, NotificationChain msgs) {
064                msgs = eDynamicInverseAdd((InternalEObject)newAppearance, BootstrapPackage.TAG__APPEARANCE, msgs);
065                return msgs;
066        }
067
068        /**
069         * <!-- begin-user-doc -->
070         * <!-- end-user-doc -->
071         * @generated
072         */
073        @Override
074        public void setAppearance(Appearance newAppearance) {
075                eDynamicSet(BootstrapPackage.TAG__APPEARANCE, BootstrapPackage.Literals.BOOTSTRAP_ELEMENT__APPEARANCE, newAppearance);
076        }
077
078        /**
079         * <!-- begin-user-doc -->
080         * <!-- end-user-doc -->
081         * @generated
082         */
083        @Override
084        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
085                switch (featureID) {
086                        case BootstrapPackage.TAG__APPEARANCE:
087                                return basicSetAppearance(null, msgs);
088                }
089                return super.eInverseRemove(otherEnd, featureID, msgs);
090        }
091
092        /**
093         * <!-- begin-user-doc -->
094         * <!-- end-user-doc -->
095         * @generated
096         */
097        @Override
098        public Object eGet(int featureID, boolean resolve, boolean coreType) {
099                switch (featureID) {
100                        case BootstrapPackage.TAG__APPEARANCE:
101                                return getAppearance();
102                }
103                return super.eGet(featureID, resolve, coreType);
104        }
105
106        /**
107         * <!-- begin-user-doc -->
108         * <!-- end-user-doc -->
109         * @generated
110         */
111        @Override
112        public void eSet(int featureID, Object newValue) {
113                switch (featureID) {
114                        case BootstrapPackage.TAG__APPEARANCE:
115                                setAppearance((Appearance)newValue);
116                                return;
117                }
118                super.eSet(featureID, newValue);
119        }
120
121        /**
122         * <!-- begin-user-doc -->
123         * <!-- end-user-doc -->
124         * @generated
125         */
126        @Override
127        public void eUnset(int featureID) {
128                switch (featureID) {
129                        case BootstrapPackage.TAG__APPEARANCE:
130                                setAppearance((Appearance)null);
131                                return;
132                }
133                super.eUnset(featureID);
134        }
135
136        /**
137         * <!-- begin-user-doc -->
138         * <!-- end-user-doc -->
139         * @generated
140         */
141        @Override
142        public boolean eIsSet(int featureID) {
143                switch (featureID) {
144                        case BootstrapPackage.TAG__APPEARANCE:
145                                return getAppearance() != null;
146                }
147                return super.eIsSet(featureID);
148        }
149
150        /**
151         * <!-- begin-user-doc -->
152         * <!-- end-user-doc -->
153         * @generated
154         */
155        @Override
156        public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
157                if (baseClass == BootstrapElement.class) {
158                        switch (derivedFeatureID) {
159                                case BootstrapPackage.TAG__APPEARANCE: return BootstrapPackage.BOOTSTRAP_ELEMENT__APPEARANCE;
160                                default: return -1;
161                        }
162                }
163                return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
164        }
165
166        /**
167         * <!-- begin-user-doc -->
168         * <!-- end-user-doc -->
169         * @generated
170         */
171        @Override
172        public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
173                if (baseClass == BootstrapElement.class) {
174                        switch (baseFeatureID) {
175                                case BootstrapPackage.BOOTSTRAP_ELEMENT__APPEARANCE: return BootstrapPackage.TAG__APPEARANCE;
176                                default: return -1;
177                        }
178                }
179                return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
180        }
181
182} //TagImpl