001/**
002 */
003package org.nasdanika.models.gitlab.impl;
004
005import java.util.Collection;
006
007import java.util.Date;
008import org.eclipse.emf.common.notify.NotificationChain;
009
010import org.eclipse.emf.common.util.EList;
011
012import org.eclipse.emf.ecore.EClass;
013import org.eclipse.emf.ecore.InternalEObject;
014import org.eclipse.emf.ecore.util.InternalEList;
015
016import org.nasdanika.models.gitlab.GitLab;
017import org.nasdanika.models.gitlab.GitLabPackage;
018import org.nasdanika.models.gitlab.Group;
019import org.nasdanika.models.gitlab.User;
020
021/**
022 * <!-- begin-user-doc -->
023 * An implementation of the model object '<em><b>Git Lab</b></em>'.
024 * <!-- end-user-doc -->
025 * <p>
026 * The following features are implemented:
027 * </p>
028 * <ul>
029 *   <li>{@link org.nasdanika.models.gitlab.impl.GitLabImpl#getUrl <em>Url</em>}</li>
030 *   <li>{@link org.nasdanika.models.gitlab.impl.GitLabImpl#getGroups <em>Groups</em>}</li>
031 *   <li>{@link org.nasdanika.models.gitlab.impl.GitLabImpl#getUsers <em>Users</em>}</li>
032 *   <li>{@link org.nasdanika.models.gitlab.impl.GitLabImpl#getTopLevelGroupsLoaded <em>Top Level Groups Loaded</em>}</li>
033 * </ul>
034 *
035 * @generated
036 */
037public class GitLabImpl extends LoadableImpl implements GitLab {
038        /**
039         * The default value of the '{@link #getUrl() <em>Url</em>}' attribute.
040         * <!-- begin-user-doc -->
041         * <!-- end-user-doc -->
042         * @see #getUrl()
043         * @generated
044         * @ordered
045         */
046        protected static final String URL_EDEFAULT = null;
047
048        /**
049         * The default value of the '{@link #getTopLevelGroupsLoaded() <em>Top Level Groups Loaded</em>}' attribute.
050         * <!-- begin-user-doc -->
051         * <!-- end-user-doc -->
052         * @see #getTopLevelGroupsLoaded()
053         * @generated
054         * @ordered
055         */
056        protected static final Date TOP_LEVEL_GROUPS_LOADED_EDEFAULT = null;
057
058        /**
059         * <!-- begin-user-doc -->
060         * <!-- end-user-doc -->
061         * @generated
062         */
063        protected GitLabImpl() {
064                super();
065        }
066
067        /**
068         * <!-- begin-user-doc -->
069         * <!-- end-user-doc -->
070         * @generated
071         */
072        @Override
073        protected EClass eStaticClass() {
074                return GitLabPackage.Literals.GIT_LAB;
075        }
076
077        /**
078         * <!-- begin-user-doc -->
079         * <!-- end-user-doc -->
080         * @generated
081         */
082        @Override
083        public String getUrl() {
084                return (String)eDynamicGet(GitLabPackage.GIT_LAB__URL, GitLabPackage.Literals.GIT_LAB__URL, true, true);
085        }
086
087        /**
088         * <!-- begin-user-doc -->
089         * <!-- end-user-doc -->
090         * @generated
091         */
092        @Override
093        public void setUrl(String newUrl) {
094                eDynamicSet(GitLabPackage.GIT_LAB__URL, GitLabPackage.Literals.GIT_LAB__URL, newUrl);
095        }
096
097        /**
098         * <!-- begin-user-doc -->
099         * <!-- end-user-doc -->
100         * @generated
101         */
102        @SuppressWarnings("unchecked")
103        @Override
104        public EList<Group> getGroups() {
105                return (EList<Group>)eDynamicGet(GitLabPackage.GIT_LAB__GROUPS, GitLabPackage.Literals.GIT_LAB__GROUPS, true, true);
106        }
107
108        /**
109         * <!-- begin-user-doc -->
110         * <!-- end-user-doc -->
111         * @generated
112         */
113        @SuppressWarnings("unchecked")
114        @Override
115        public EList<User> getUsers() {
116                return (EList<User>)eDynamicGet(GitLabPackage.GIT_LAB__USERS, GitLabPackage.Literals.GIT_LAB__USERS, true, true);
117        }
118
119        /**
120         * <!-- begin-user-doc -->
121         * <!-- end-user-doc -->
122         * @generated
123         */
124        @Override
125        public Date getTopLevelGroupsLoaded() {
126                return (Date)eDynamicGet(GitLabPackage.GIT_LAB__TOP_LEVEL_GROUPS_LOADED, GitLabPackage.Literals.GIT_LAB__TOP_LEVEL_GROUPS_LOADED, true, true);
127        }
128
129        /**
130         * <!-- begin-user-doc -->
131         * <!-- end-user-doc -->
132         * @generated
133         */
134        @Override
135        public void setTopLevelGroupsLoaded(Date newTopLevelGroupsLoaded) {
136                eDynamicSet(GitLabPackage.GIT_LAB__TOP_LEVEL_GROUPS_LOADED, GitLabPackage.Literals.GIT_LAB__TOP_LEVEL_GROUPS_LOADED, newTopLevelGroupsLoaded);
137        }
138
139        /**
140         * <!-- begin-user-doc -->
141         * <!-- end-user-doc -->
142         * @generated
143         */
144        @Override
145        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
146                switch (featureID) {
147                        case GitLabPackage.GIT_LAB__GROUPS:
148                                return ((InternalEList<?>)getGroups()).basicRemove(otherEnd, msgs);
149                        case GitLabPackage.GIT_LAB__USERS:
150                                return ((InternalEList<?>)getUsers()).basicRemove(otherEnd, msgs);
151                }
152                return super.eInverseRemove(otherEnd, featureID, msgs);
153        }
154
155        /**
156         * <!-- begin-user-doc -->
157         * <!-- end-user-doc -->
158         * @generated
159         */
160        @Override
161        public Object eGet(int featureID, boolean resolve, boolean coreType) {
162                switch (featureID) {
163                        case GitLabPackage.GIT_LAB__URL:
164                                return getUrl();
165                        case GitLabPackage.GIT_LAB__GROUPS:
166                                return getGroups();
167                        case GitLabPackage.GIT_LAB__USERS:
168                                return getUsers();
169                        case GitLabPackage.GIT_LAB__TOP_LEVEL_GROUPS_LOADED:
170                                return getTopLevelGroupsLoaded();
171                }
172                return super.eGet(featureID, resolve, coreType);
173        }
174
175        /**
176         * <!-- begin-user-doc -->
177         * <!-- end-user-doc -->
178         * @generated
179         */
180        @SuppressWarnings("unchecked")
181        @Override
182        public void eSet(int featureID, Object newValue) {
183                switch (featureID) {
184                        case GitLabPackage.GIT_LAB__URL:
185                                setUrl((String)newValue);
186                                return;
187                        case GitLabPackage.GIT_LAB__GROUPS:
188                                getGroups().clear();
189                                getGroups().addAll((Collection<? extends Group>)newValue);
190                                return;
191                        case GitLabPackage.GIT_LAB__USERS:
192                                getUsers().clear();
193                                getUsers().addAll((Collection<? extends User>)newValue);
194                                return;
195                        case GitLabPackage.GIT_LAB__TOP_LEVEL_GROUPS_LOADED:
196                                setTopLevelGroupsLoaded((Date)newValue);
197                                return;
198                }
199                super.eSet(featureID, newValue);
200        }
201
202        /**
203         * <!-- begin-user-doc -->
204         * <!-- end-user-doc -->
205         * @generated
206         */
207        @Override
208        public void eUnset(int featureID) {
209                switch (featureID) {
210                        case GitLabPackage.GIT_LAB__URL:
211                                setUrl(URL_EDEFAULT);
212                                return;
213                        case GitLabPackage.GIT_LAB__GROUPS:
214                                getGroups().clear();
215                                return;
216                        case GitLabPackage.GIT_LAB__USERS:
217                                getUsers().clear();
218                                return;
219                        case GitLabPackage.GIT_LAB__TOP_LEVEL_GROUPS_LOADED:
220                                setTopLevelGroupsLoaded(TOP_LEVEL_GROUPS_LOADED_EDEFAULT);
221                                return;
222                }
223                super.eUnset(featureID);
224        }
225
226        /**
227         * <!-- begin-user-doc -->
228         * <!-- end-user-doc -->
229         * @generated
230         */
231        @Override
232        public boolean eIsSet(int featureID) {
233                switch (featureID) {
234                        case GitLabPackage.GIT_LAB__URL:
235                                return URL_EDEFAULT == null ? getUrl() != null : !URL_EDEFAULT.equals(getUrl());
236                        case GitLabPackage.GIT_LAB__GROUPS:
237                                return !getGroups().isEmpty();
238                        case GitLabPackage.GIT_LAB__USERS:
239                                return !getUsers().isEmpty();
240                        case GitLabPackage.GIT_LAB__TOP_LEVEL_GROUPS_LOADED:
241                                return TOP_LEVEL_GROUPS_LOADED_EDEFAULT == null ? getTopLevelGroupsLoaded() != null : !TOP_LEVEL_GROUPS_LOADED_EDEFAULT.equals(getTopLevelGroupsLoaded());
242                }
243                return super.eIsSet(featureID);
244        }
245
246} //GitLabImpl