001/**
002 */
003package org.nasdanika.models.gitlab.impl;
004
005import java.util.Collection;
006import org.eclipse.emf.common.notify.NotificationChain;
007
008import org.eclipse.emf.common.util.EList;
009
010import org.eclipse.emf.ecore.EClass;
011import org.eclipse.emf.ecore.InternalEObject;
012import org.eclipse.emf.ecore.util.InternalEList;
013
014import org.nasdanika.models.gitlab.Contributor;
015import org.nasdanika.models.gitlab.GitLabPackage;
016import org.nasdanika.models.gitlab.Member;
017import org.nasdanika.models.gitlab.Owner;
018import org.nasdanika.models.gitlab.Project;
019import org.nasdanika.models.gitlab.User;
020import org.nasdanika.models.gitlab.codeowners.CodeOwner;
021
022/**
023 * <!-- begin-user-doc -->
024 * An implementation of the model object '<em><b>User</b></em>'.
025 * <!-- end-user-doc -->
026 * <p>
027 * The following features are implemented:
028 * </p>
029 * <ul>
030 *   <li>{@link org.nasdanika.models.gitlab.impl.UserImpl#getProjects <em>Projects</em>}</li>
031 *   <li>{@link org.nasdanika.models.gitlab.impl.UserImpl#getMembership <em>Membership</em>}</li>
032 *   <li>{@link org.nasdanika.models.gitlab.impl.UserImpl#getOwns <em>Owns</em>}</li>
033 *   <li>{@link org.nasdanika.models.gitlab.impl.UserImpl#getCreatedProjects <em>Created Projects</em>}</li>
034 *   <li>{@link org.nasdanika.models.gitlab.impl.UserImpl#getContributions <em>Contributions</em>}</li>
035 *   <li>{@link org.nasdanika.models.gitlab.impl.UserImpl#getCodeOwnership <em>Code Ownership</em>}</li>
036 * </ul>
037 *
038 * @generated
039 */
040public class UserImpl extends AbstractUserImpl implements User {
041        /**
042         * <!-- begin-user-doc -->
043         * <!-- end-user-doc -->
044         * @generated
045         */
046        protected UserImpl() {
047                super();
048        }
049
050        /**
051         * <!-- begin-user-doc -->
052         * <!-- end-user-doc -->
053         * @generated
054         */
055        @Override
056        protected EClass eStaticClass() {
057                return GitLabPackage.Literals.USER;
058        }
059
060        /**
061         * <!-- begin-user-doc -->
062         * <!-- end-user-doc -->
063         * @generated
064         */
065        @SuppressWarnings("unchecked")
066        @Override
067        public EList<Project> getProjects() {
068                return (EList<Project>)eDynamicGet(GitLabPackage.USER__PROJECTS, GitLabPackage.Literals.USER__PROJECTS, true, true);
069        }
070
071        /**
072         * <!-- begin-user-doc -->
073         * <!-- end-user-doc -->
074         * @generated
075         */
076        @SuppressWarnings("unchecked")
077        @Override
078        public EList<Member> getMembership() {
079                return (EList<Member>)eDynamicGet(GitLabPackage.USER__MEMBERSHIP, GitLabPackage.Literals.USER__MEMBERSHIP, true, true);
080        }
081
082        /**
083         * <!-- begin-user-doc -->
084         * <!-- end-user-doc -->
085         * @generated
086         */
087        @SuppressWarnings("unchecked")
088        @Override
089        public EList<Owner> getOwns() {
090                return (EList<Owner>)eDynamicGet(GitLabPackage.USER__OWNS, GitLabPackage.Literals.USER__OWNS, true, true);
091        }
092
093        /**
094         * <!-- begin-user-doc -->
095         * <!-- end-user-doc -->
096         * @generated
097         */
098        @SuppressWarnings("unchecked")
099        @Override
100        public EList<Project> getCreatedProjects() {
101                return (EList<Project>)eDynamicGet(GitLabPackage.USER__CREATED_PROJECTS, GitLabPackage.Literals.USER__CREATED_PROJECTS, true, true);
102        }
103
104        /**
105         * <!-- begin-user-doc -->
106         * <!-- end-user-doc -->
107         * @generated
108         */
109        @SuppressWarnings("unchecked")
110        @Override
111        public EList<Contributor> getContributions() {
112                return (EList<Contributor>)eDynamicGet(GitLabPackage.USER__CONTRIBUTIONS, GitLabPackage.Literals.USER__CONTRIBUTIONS, true, true);
113        }
114
115        /**
116         * <!-- begin-user-doc -->
117         * <!-- end-user-doc -->
118         * @generated
119         */
120        @SuppressWarnings("unchecked")
121        @Override
122        public EList<CodeOwner> getCodeOwnership() {
123                return (EList<CodeOwner>)eDynamicGet(GitLabPackage.USER__CODE_OWNERSHIP, GitLabPackage.Literals.USER__CODE_OWNERSHIP, true, true);
124        }
125
126        /**
127         * <!-- begin-user-doc -->
128         * <!-- end-user-doc -->
129         * @generated
130         */
131        @SuppressWarnings("unchecked")
132        @Override
133        public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
134                switch (featureID) {
135                        case GitLabPackage.USER__MEMBERSHIP:
136                                return ((InternalEList<InternalEObject>)(InternalEList<?>)getMembership()).basicAdd(otherEnd, msgs);
137                        case GitLabPackage.USER__OWNS:
138                                return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwns()).basicAdd(otherEnd, msgs);
139                        case GitLabPackage.USER__CREATED_PROJECTS:
140                                return ((InternalEList<InternalEObject>)(InternalEList<?>)getCreatedProjects()).basicAdd(otherEnd, msgs);
141                        case GitLabPackage.USER__CONTRIBUTIONS:
142                                return ((InternalEList<InternalEObject>)(InternalEList<?>)getContributions()).basicAdd(otherEnd, msgs);
143                        case GitLabPackage.USER__CODE_OWNERSHIP:
144                                return ((InternalEList<InternalEObject>)(InternalEList<?>)getCodeOwnership()).basicAdd(otherEnd, msgs);
145                }
146                return super.eInverseAdd(otherEnd, featureID, msgs);
147        }
148
149        /**
150         * <!-- begin-user-doc -->
151         * <!-- end-user-doc -->
152         * @generated
153         */
154        @Override
155        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
156                switch (featureID) {
157                        case GitLabPackage.USER__PROJECTS:
158                                return ((InternalEList<?>)getProjects()).basicRemove(otherEnd, msgs);
159                        case GitLabPackage.USER__MEMBERSHIP:
160                                return ((InternalEList<?>)getMembership()).basicRemove(otherEnd, msgs);
161                        case GitLabPackage.USER__OWNS:
162                                return ((InternalEList<?>)getOwns()).basicRemove(otherEnd, msgs);
163                        case GitLabPackage.USER__CREATED_PROJECTS:
164                                return ((InternalEList<?>)getCreatedProjects()).basicRemove(otherEnd, msgs);
165                        case GitLabPackage.USER__CONTRIBUTIONS:
166                                return ((InternalEList<?>)getContributions()).basicRemove(otherEnd, msgs);
167                        case GitLabPackage.USER__CODE_OWNERSHIP:
168                                return ((InternalEList<?>)getCodeOwnership()).basicRemove(otherEnd, msgs);
169                }
170                return super.eInverseRemove(otherEnd, featureID, msgs);
171        }
172
173        /**
174         * <!-- begin-user-doc -->
175         * <!-- end-user-doc -->
176         * @generated
177         */
178        @Override
179        public Object eGet(int featureID, boolean resolve, boolean coreType) {
180                switch (featureID) {
181                        case GitLabPackage.USER__PROJECTS:
182                                return getProjects();
183                        case GitLabPackage.USER__MEMBERSHIP:
184                                return getMembership();
185                        case GitLabPackage.USER__OWNS:
186                                return getOwns();
187                        case GitLabPackage.USER__CREATED_PROJECTS:
188                                return getCreatedProjects();
189                        case GitLabPackage.USER__CONTRIBUTIONS:
190                                return getContributions();
191                        case GitLabPackage.USER__CODE_OWNERSHIP:
192                                return getCodeOwnership();
193                }
194                return super.eGet(featureID, resolve, coreType);
195        }
196
197        /**
198         * <!-- begin-user-doc -->
199         * <!-- end-user-doc -->
200         * @generated
201         */
202        @SuppressWarnings("unchecked")
203        @Override
204        public void eSet(int featureID, Object newValue) {
205                switch (featureID) {
206                        case GitLabPackage.USER__PROJECTS:
207                                getProjects().clear();
208                                getProjects().addAll((Collection<? extends Project>)newValue);
209                                return;
210                        case GitLabPackage.USER__MEMBERSHIP:
211                                getMembership().clear();
212                                getMembership().addAll((Collection<? extends Member>)newValue);
213                                return;
214                        case GitLabPackage.USER__OWNS:
215                                getOwns().clear();
216                                getOwns().addAll((Collection<? extends Owner>)newValue);
217                                return;
218                        case GitLabPackage.USER__CREATED_PROJECTS:
219                                getCreatedProjects().clear();
220                                getCreatedProjects().addAll((Collection<? extends Project>)newValue);
221                                return;
222                        case GitLabPackage.USER__CONTRIBUTIONS:
223                                getContributions().clear();
224                                getContributions().addAll((Collection<? extends Contributor>)newValue);
225                                return;
226                        case GitLabPackage.USER__CODE_OWNERSHIP:
227                                getCodeOwnership().clear();
228                                getCodeOwnership().addAll((Collection<? extends CodeOwner>)newValue);
229                                return;
230                }
231                super.eSet(featureID, newValue);
232        }
233
234        /**
235         * <!-- begin-user-doc -->
236         * <!-- end-user-doc -->
237         * @generated
238         */
239        @Override
240        public void eUnset(int featureID) {
241                switch (featureID) {
242                        case GitLabPackage.USER__PROJECTS:
243                                getProjects().clear();
244                                return;
245                        case GitLabPackage.USER__MEMBERSHIP:
246                                getMembership().clear();
247                                return;
248                        case GitLabPackage.USER__OWNS:
249                                getOwns().clear();
250                                return;
251                        case GitLabPackage.USER__CREATED_PROJECTS:
252                                getCreatedProjects().clear();
253                                return;
254                        case GitLabPackage.USER__CONTRIBUTIONS:
255                                getContributions().clear();
256                                return;
257                        case GitLabPackage.USER__CODE_OWNERSHIP:
258                                getCodeOwnership().clear();
259                                return;
260                }
261                super.eUnset(featureID);
262        }
263
264        /**
265         * <!-- begin-user-doc -->
266         * <!-- end-user-doc -->
267         * @generated
268         */
269        @Override
270        public boolean eIsSet(int featureID) {
271                switch (featureID) {
272                        case GitLabPackage.USER__PROJECTS:
273                                return !getProjects().isEmpty();
274                        case GitLabPackage.USER__MEMBERSHIP:
275                                return !getMembership().isEmpty();
276                        case GitLabPackage.USER__OWNS:
277                                return !getOwns().isEmpty();
278                        case GitLabPackage.USER__CREATED_PROJECTS:
279                                return !getCreatedProjects().isEmpty();
280                        case GitLabPackage.USER__CONTRIBUTIONS:
281                                return !getContributions().isEmpty();
282                        case GitLabPackage.USER__CODE_OWNERSHIP:
283                                return !getCodeOwnership().isEmpty();
284                }
285                return super.eIsSet(featureID);
286        }
287
288} //UserImpl