001/**
002 */
003package org.nasdanika.html.model.bootstrap.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.InternalEObject;
013
014import org.eclipse.emf.ecore.util.InternalEList;
015
016import org.nasdanika.html.model.bootstrap.BootstrapPackage;
017import org.nasdanika.html.model.bootstrap.Carousel;
018import org.nasdanika.html.model.bootstrap.Slide;
019
020/**
021 * <!-- begin-user-doc -->
022 * An implementation of the model object '<em><b>Carousel</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.bootstrap.impl.CarouselImpl#getSlides <em>Slides</em>}</li>
029 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.CarouselImpl#isControls <em>Controls</em>}</li>
030 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.CarouselImpl#isIndicator <em>Indicator</em>}</li>
031 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.CarouselImpl#isCrossFade <em>Cross Fade</em>}</li>
032 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.CarouselImpl#isRide <em>Ride</em>}</li>
033 *   <li>{@link org.nasdanika.html.model.bootstrap.impl.CarouselImpl#getInterval <em>Interval</em>}</li>
034 * </ul>
035 *
036 * @generated
037 */
038public class CarouselImpl extends DivImpl implements Carousel {
039        /**
040         * The default value of the '{@link #isControls() <em>Controls</em>}' attribute.
041         * <!-- begin-user-doc -->
042         * <!-- end-user-doc -->
043         * @see #isControls()
044         * @generated
045         * @ordered
046         */
047        protected static final boolean CONTROLS_EDEFAULT = false;
048        /**
049         * The default value of the '{@link #isIndicator() <em>Indicator</em>}' attribute.
050         * <!-- begin-user-doc -->
051         * <!-- end-user-doc -->
052         * @see #isIndicator()
053         * @generated
054         * @ordered
055         */
056        protected static final boolean INDICATOR_EDEFAULT = false;
057        /**
058         * The default value of the '{@link #isCrossFade() <em>Cross Fade</em>}' attribute.
059         * <!-- begin-user-doc -->
060         * <!-- end-user-doc -->
061         * @see #isCrossFade()
062         * @generated
063         * @ordered
064         */
065        protected static final boolean CROSS_FADE_EDEFAULT = false;
066        /**
067         * The default value of the '{@link #isRide() <em>Ride</em>}' attribute.
068         * <!-- begin-user-doc -->
069         * <!-- end-user-doc -->
070         * @see #isRide()
071         * @generated
072         * @ordered
073         */
074        protected static final boolean RIDE_EDEFAULT = true;
075        /**
076         * The default value of the '{@link #getInterval() <em>Interval</em>}' attribute.
077         * <!-- begin-user-doc -->
078         * <!-- end-user-doc -->
079         * @see #getInterval()
080         * @generated
081         * @ordered
082         */
083        protected static final String INTERVAL_EDEFAULT = null;
084
085        /**
086         * <!-- begin-user-doc -->
087         * <!-- end-user-doc -->
088         * @generated
089         */
090        protected CarouselImpl() {
091                super();
092        }
093
094        /**
095         * <!-- begin-user-doc -->
096         * <!-- end-user-doc -->
097         * @generated
098         */
099        @Override
100        protected EClass eStaticClass() {
101                return BootstrapPackage.Literals.CAROUSEL;
102        }
103
104        /**
105         * <!-- begin-user-doc -->
106         * <!-- end-user-doc -->
107         * @generated
108         */
109        @SuppressWarnings("unchecked")
110        @Override
111        public EList<Slide> getSlides() {
112                return (EList<Slide>)eDynamicGet(BootstrapPackage.CAROUSEL__SLIDES, BootstrapPackage.Literals.CAROUSEL__SLIDES, true, true);
113        }
114
115        /**
116         * <!-- begin-user-doc -->
117         * <!-- end-user-doc -->
118         * @generated
119         */
120        @Override
121        public boolean isControls() {
122                return (Boolean)eDynamicGet(BootstrapPackage.CAROUSEL__CONTROLS, BootstrapPackage.Literals.CAROUSEL__CONTROLS, true, true);
123        }
124
125        /**
126         * <!-- begin-user-doc -->
127         * <!-- end-user-doc -->
128         * @generated
129         */
130        @Override
131        public void setControls(boolean newControls) {
132                eDynamicSet(BootstrapPackage.CAROUSEL__CONTROLS, BootstrapPackage.Literals.CAROUSEL__CONTROLS, newControls);
133        }
134
135        /**
136         * <!-- begin-user-doc -->
137         * <!-- end-user-doc -->
138         * @generated
139         */
140        @Override
141        public boolean isIndicator() {
142                return (Boolean)eDynamicGet(BootstrapPackage.CAROUSEL__INDICATOR, BootstrapPackage.Literals.CAROUSEL__INDICATOR, true, true);
143        }
144
145        /**
146         * <!-- begin-user-doc -->
147         * <!-- end-user-doc -->
148         * @generated
149         */
150        @Override
151        public void setIndicator(boolean newIndicator) {
152                eDynamicSet(BootstrapPackage.CAROUSEL__INDICATOR, BootstrapPackage.Literals.CAROUSEL__INDICATOR, newIndicator);
153        }
154
155        /**
156         * <!-- begin-user-doc -->
157         * <!-- end-user-doc -->
158         * @generated
159         */
160        @Override
161        public boolean isCrossFade() {
162                return (Boolean)eDynamicGet(BootstrapPackage.CAROUSEL__CROSS_FADE, BootstrapPackage.Literals.CAROUSEL__CROSS_FADE, true, true);
163        }
164
165        /**
166         * <!-- begin-user-doc -->
167         * <!-- end-user-doc -->
168         * @generated
169         */
170        @Override
171        public void setCrossFade(boolean newCrossFade) {
172                eDynamicSet(BootstrapPackage.CAROUSEL__CROSS_FADE, BootstrapPackage.Literals.CAROUSEL__CROSS_FADE, newCrossFade);
173        }
174
175        /**
176         * <!-- begin-user-doc -->
177         * <!-- end-user-doc -->
178         * @generated
179         */
180        @Override
181        public boolean isRide() {
182                return (Boolean)eDynamicGet(BootstrapPackage.CAROUSEL__RIDE, BootstrapPackage.Literals.CAROUSEL__RIDE, true, true);
183        }
184
185        /**
186         * <!-- begin-user-doc -->
187         * <!-- end-user-doc -->
188         * @generated
189         */
190        @Override
191        public void setRide(boolean newRide) {
192                eDynamicSet(BootstrapPackage.CAROUSEL__RIDE, BootstrapPackage.Literals.CAROUSEL__RIDE, newRide);
193        }
194
195        /**
196         * <!-- begin-user-doc -->
197         * <!-- end-user-doc -->
198         * @generated
199         */
200        @Override
201        public String getInterval() {
202                return (String)eDynamicGet(BootstrapPackage.CAROUSEL__INTERVAL, BootstrapPackage.Literals.CAROUSEL__INTERVAL, true, true);
203        }
204
205        /**
206         * <!-- begin-user-doc -->
207         * <!-- end-user-doc -->
208         * @generated
209         */
210        @Override
211        public void setInterval(String newInterval) {
212                eDynamicSet(BootstrapPackage.CAROUSEL__INTERVAL, BootstrapPackage.Literals.CAROUSEL__INTERVAL, newInterval);
213        }
214
215        /**
216         * <!-- begin-user-doc -->
217         * <!-- end-user-doc -->
218         * @generated
219         */
220        @Override
221        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
222                switch (featureID) {
223                        case BootstrapPackage.CAROUSEL__SLIDES:
224                                return ((InternalEList<?>)getSlides()).basicRemove(otherEnd, msgs);
225                }
226                return super.eInverseRemove(otherEnd, featureID, msgs);
227        }
228
229        /**
230         * <!-- begin-user-doc -->
231         * <!-- end-user-doc -->
232         * @generated
233         */
234        @Override
235        public Object eGet(int featureID, boolean resolve, boolean coreType) {
236                switch (featureID) {
237                        case BootstrapPackage.CAROUSEL__SLIDES:
238                                return getSlides();
239                        case BootstrapPackage.CAROUSEL__CONTROLS:
240                                return isControls();
241                        case BootstrapPackage.CAROUSEL__INDICATOR:
242                                return isIndicator();
243                        case BootstrapPackage.CAROUSEL__CROSS_FADE:
244                                return isCrossFade();
245                        case BootstrapPackage.CAROUSEL__RIDE:
246                                return isRide();
247                        case BootstrapPackage.CAROUSEL__INTERVAL:
248                                return getInterval();
249                }
250                return super.eGet(featureID, resolve, coreType);
251        }
252
253        /**
254         * <!-- begin-user-doc -->
255         * <!-- end-user-doc -->
256         * @generated
257         */
258        @SuppressWarnings("unchecked")
259        @Override
260        public void eSet(int featureID, Object newValue) {
261                switch (featureID) {
262                        case BootstrapPackage.CAROUSEL__SLIDES:
263                                getSlides().clear();
264                                getSlides().addAll((Collection<? extends Slide>)newValue);
265                                return;
266                        case BootstrapPackage.CAROUSEL__CONTROLS:
267                                setControls((Boolean)newValue);
268                                return;
269                        case BootstrapPackage.CAROUSEL__INDICATOR:
270                                setIndicator((Boolean)newValue);
271                                return;
272                        case BootstrapPackage.CAROUSEL__CROSS_FADE:
273                                setCrossFade((Boolean)newValue);
274                                return;
275                        case BootstrapPackage.CAROUSEL__RIDE:
276                                setRide((Boolean)newValue);
277                                return;
278                        case BootstrapPackage.CAROUSEL__INTERVAL:
279                                setInterval((String)newValue);
280                                return;
281                }
282                super.eSet(featureID, newValue);
283        }
284
285        /**
286         * <!-- begin-user-doc -->
287         * <!-- end-user-doc -->
288         * @generated
289         */
290        @Override
291        public void eUnset(int featureID) {
292                switch (featureID) {
293                        case BootstrapPackage.CAROUSEL__SLIDES:
294                                getSlides().clear();
295                                return;
296                        case BootstrapPackage.CAROUSEL__CONTROLS:
297                                setControls(CONTROLS_EDEFAULT);
298                                return;
299                        case BootstrapPackage.CAROUSEL__INDICATOR:
300                                setIndicator(INDICATOR_EDEFAULT);
301                                return;
302                        case BootstrapPackage.CAROUSEL__CROSS_FADE:
303                                setCrossFade(CROSS_FADE_EDEFAULT);
304                                return;
305                        case BootstrapPackage.CAROUSEL__RIDE:
306                                setRide(RIDE_EDEFAULT);
307                                return;
308                        case BootstrapPackage.CAROUSEL__INTERVAL:
309                                setInterval(INTERVAL_EDEFAULT);
310                                return;
311                }
312                super.eUnset(featureID);
313        }
314
315        /**
316         * <!-- begin-user-doc -->
317         * <!-- end-user-doc -->
318         * @generated
319         */
320        @Override
321        public boolean eIsSet(int featureID) {
322                switch (featureID) {
323                        case BootstrapPackage.CAROUSEL__SLIDES:
324                                return !getSlides().isEmpty();
325                        case BootstrapPackage.CAROUSEL__CONTROLS:
326                                return isControls() != CONTROLS_EDEFAULT;
327                        case BootstrapPackage.CAROUSEL__INDICATOR:
328                                return isIndicator() != INDICATOR_EDEFAULT;
329                        case BootstrapPackage.CAROUSEL__CROSS_FADE:
330                                return isCrossFade() != CROSS_FADE_EDEFAULT;
331                        case BootstrapPackage.CAROUSEL__RIDE:
332                                return isRide() != RIDE_EDEFAULT;
333                        case BootstrapPackage.CAROUSEL__INTERVAL:
334                                return INTERVAL_EDEFAULT == null ? getInterval() != null : !INTERVAL_EDEFAULT.equals(getInterval());
335                }
336                return super.eIsSet(featureID);
337        }
338
339} //CarouselImpl