001/**
002 */
003package org.nasdanika.models.gitlab.impl;
004
005import java.util.Collection;
006import java.util.Date;
007
008import org.eclipse.emf.common.notify.NotificationChain;
009import org.eclipse.emf.common.util.EList;
010import org.eclipse.emf.ecore.EClass;
011
012import org.eclipse.emf.ecore.InternalEObject;
013import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
014
015import org.eclipse.emf.ecore.util.InternalEList;
016import org.nasdanika.models.gitlab.GitLabPackage;
017import org.nasdanika.models.gitlab.Load;
018import org.nasdanika.models.gitlab.Loadable;
019
020/**
021 * <!-- begin-user-doc -->
022 * An implementation of the model object '<em><b>Loadable</b></em>'.
023 * <!-- end-user-doc -->
024 * <p>
025 * The following features are implemented:
026 * </p>
027 * <ul>
028 *   <li>{@link org.nasdanika.models.gitlab.impl.LoadableImpl#getLoaded <em>Loaded</em>}</li>
029 *   <li>{@link org.nasdanika.models.gitlab.impl.LoadableImpl#getLoads <em>Loads</em>}</li>
030 * </ul>
031 *
032 * @generated
033 */
034public abstract class LoadableImpl extends MinimalEObjectImpl.Container implements Loadable {
035        /**
036         * The default value of the '{@link #getLoaded() <em>Loaded</em>}' attribute.
037         * <!-- begin-user-doc -->
038         * <!-- end-user-doc -->
039         * @see #getLoaded()
040         * @generated
041         * @ordered
042         */
043        protected static final Date LOADED_EDEFAULT = null;
044
045        /**
046         * <!-- begin-user-doc -->
047         * <!-- end-user-doc -->
048         * @generated
049         */
050        protected LoadableImpl() {
051                super();
052        }
053
054        /**
055         * <!-- begin-user-doc -->
056         * <!-- end-user-doc -->
057         * @generated
058         */
059        @Override
060        protected EClass eStaticClass() {
061                return GitLabPackage.Literals.LOADABLE;
062        }
063
064        /**
065         * <!-- begin-user-doc -->
066         * <!-- end-user-doc -->
067         * @generated
068         */
069        @Override
070        protected int eStaticFeatureCount() {
071                return 0;
072        }
073
074        /**
075         * <!-- begin-user-doc -->
076         * <!-- end-user-doc -->
077         * @generated
078         */
079        @Override
080        public Date getLoaded() {
081                return (Date)eDynamicGet(GitLabPackage.LOADABLE__LOADED, GitLabPackage.Literals.LOADABLE__LOADED, true, true);
082        }
083
084        /**
085         * <!-- begin-user-doc -->
086         * <!-- end-user-doc -->
087         * @generated
088         */
089        @Override
090        public void setLoaded(Date newLoaded) {
091                eDynamicSet(GitLabPackage.LOADABLE__LOADED, GitLabPackage.Literals.LOADABLE__LOADED, newLoaded);
092        }
093
094        /**
095         * <!-- begin-user-doc -->
096         * <!-- end-user-doc -->
097         * @generated
098         */
099        @SuppressWarnings("unchecked")
100        @Override
101        public EList<Load> getLoads() {
102                return (EList<Load>)eDynamicGet(GitLabPackage.LOADABLE__LOADS, GitLabPackage.Literals.LOADABLE__LOADS, true, true);
103        }
104
105        /**
106         * <!-- begin-user-doc -->
107         * <!-- end-user-doc -->
108         * @generated
109         */
110        @Override
111        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
112                switch (featureID) {
113                        case GitLabPackage.LOADABLE__LOADS:
114                                return ((InternalEList<?>)getLoads()).basicRemove(otherEnd, msgs);
115                }
116                return super.eInverseRemove(otherEnd, featureID, msgs);
117        }
118
119        /**
120         * <!-- begin-user-doc -->
121         * <!-- end-user-doc -->
122         * @generated
123         */
124        @Override
125        public Object eGet(int featureID, boolean resolve, boolean coreType) {
126                switch (featureID) {
127                        case GitLabPackage.LOADABLE__LOADED:
128                                return getLoaded();
129                        case GitLabPackage.LOADABLE__LOADS:
130                                return getLoads();
131                }
132                return super.eGet(featureID, resolve, coreType);
133        }
134
135        /**
136         * <!-- begin-user-doc -->
137         * <!-- end-user-doc -->
138         * @generated
139         */
140        @SuppressWarnings("unchecked")
141        @Override
142        public void eSet(int featureID, Object newValue) {
143                switch (featureID) {
144                        case GitLabPackage.LOADABLE__LOADED:
145                                setLoaded((Date)newValue);
146                                return;
147                        case GitLabPackage.LOADABLE__LOADS:
148                                getLoads().clear();
149                                getLoads().addAll((Collection<? extends Load>)newValue);
150                                return;
151                }
152                super.eSet(featureID, newValue);
153        }
154
155        /**
156         * <!-- begin-user-doc -->
157         * <!-- end-user-doc -->
158         * @generated
159         */
160        @Override
161        public void eUnset(int featureID) {
162                switch (featureID) {
163                        case GitLabPackage.LOADABLE__LOADED:
164                                setLoaded(LOADED_EDEFAULT);
165                                return;
166                        case GitLabPackage.LOADABLE__LOADS:
167                                getLoads().clear();
168                                return;
169                }
170                super.eUnset(featureID);
171        }
172
173        /**
174         * <!-- begin-user-doc -->
175         * <!-- end-user-doc -->
176         * @generated
177         */
178        @Override
179        public boolean eIsSet(int featureID) {
180                switch (featureID) {
181                        case GitLabPackage.LOADABLE__LOADED:
182                                return LOADED_EDEFAULT == null ? getLoaded() != null : !LOADED_EDEFAULT.equals(getLoaded());
183                        case GitLabPackage.LOADABLE__LOADS:
184                                return !getLoads().isEmpty();
185                }
186                return super.eIsSet(featureID);
187        }
188
189} //LoadableImpl