001/**
002 */
003package org.nasdanika.models.gitlab.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.eclipse.emf.ecore.impl.MinimalEObjectImpl;
011
012import org.nasdanika.models.gitlab.AccessLevel;
013import org.nasdanika.models.gitlab.GitLabPackage;
014import org.nasdanika.models.gitlab.Group;
015import org.nasdanika.models.gitlab.ProjectSharedGroup;
016
017/**
018 * <!-- begin-user-doc -->
019 * An implementation of the model object '<em><b>Project Shared Group</b></em>'.
020 * <!-- end-user-doc -->
021 * <p>
022 * The following features are implemented:
023 * </p>
024 * <ul>
025 *   <li>{@link org.nasdanika.models.gitlab.impl.ProjectSharedGroupImpl#getId <em>Id</em>}</li>
026 *   <li>{@link org.nasdanika.models.gitlab.impl.ProjectSharedGroupImpl#getName <em>Name</em>}</li>
027 *   <li>{@link org.nasdanika.models.gitlab.impl.ProjectSharedGroupImpl#getFullPath <em>Full Path</em>}</li>
028 *   <li>{@link org.nasdanika.models.gitlab.impl.ProjectSharedGroupImpl#getAccessLevel <em>Access Level</em>}</li>
029 *   <li>{@link org.nasdanika.models.gitlab.impl.ProjectSharedGroupImpl#getGroup <em>Group</em>}</li>
030 * </ul>
031 *
032 * @generated
033 */
034public class ProjectSharedGroupImpl extends MinimalEObjectImpl.Container implements ProjectSharedGroup {
035        /**
036         * The default value of the '{@link #getId() <em>Id</em>}' attribute.
037         * <!-- begin-user-doc -->
038         * <!-- end-user-doc -->
039         * @see #getId()
040         * @generated
041         * @ordered
042         */
043        protected static final Long ID_EDEFAULT = null;
044
045        /**
046         * The default value of the '{@link #getName() <em>Name</em>}' attribute.
047         * <!-- begin-user-doc -->
048         * <!-- end-user-doc -->
049         * @see #getName()
050         * @generated
051         * @ordered
052         */
053        protected static final String NAME_EDEFAULT = null;
054
055        /**
056         * The default value of the '{@link #getFullPath() <em>Full Path</em>}' attribute.
057         * <!-- begin-user-doc -->
058         * <!-- end-user-doc -->
059         * @see #getFullPath()
060         * @generated
061         * @ordered
062         */
063        protected static final String FULL_PATH_EDEFAULT = null;
064
065        /**
066         * The default value of the '{@link #getAccessLevel() <em>Access Level</em>}' attribute.
067         * <!-- begin-user-doc -->
068         * <!-- end-user-doc -->
069         * @see #getAccessLevel()
070         * @generated
071         * @ordered
072         */
073        protected static final AccessLevel ACCESS_LEVEL_EDEFAULT = AccessLevel.INVALID;
074
075        /**
076         * <!-- begin-user-doc -->
077         * <!-- end-user-doc -->
078         * @generated
079         */
080        protected ProjectSharedGroupImpl() {
081                super();
082        }
083
084        /**
085         * <!-- begin-user-doc -->
086         * <!-- end-user-doc -->
087         * @generated
088         */
089        @Override
090        protected EClass eStaticClass() {
091                return GitLabPackage.Literals.PROJECT_SHARED_GROUP;
092        }
093
094        /**
095         * <!-- begin-user-doc -->
096         * <!-- end-user-doc -->
097         * @generated
098         */
099        @Override
100        protected int eStaticFeatureCount() {
101                return 0;
102        }
103
104        /**
105         * <!-- begin-user-doc -->
106         * <!-- end-user-doc -->
107         * @generated
108         */
109        @Override
110        public Long getId() {
111                return (Long)eDynamicGet(GitLabPackage.PROJECT_SHARED_GROUP__ID, GitLabPackage.Literals.PROJECT_SHARED_GROUP__ID, true, true);
112        }
113
114        /**
115         * <!-- begin-user-doc -->
116         * <!-- end-user-doc -->
117         * @generated
118         */
119        @Override
120        public void setId(Long newId) {
121                eDynamicSet(GitLabPackage.PROJECT_SHARED_GROUP__ID, GitLabPackage.Literals.PROJECT_SHARED_GROUP__ID, newId);
122        }
123
124        /**
125         * <!-- begin-user-doc -->
126         * <!-- end-user-doc -->
127         * @generated
128         */
129        @Override
130        public String getName() {
131                return (String)eDynamicGet(GitLabPackage.PROJECT_SHARED_GROUP__NAME, GitLabPackage.Literals.PROJECT_SHARED_GROUP__NAME, true, true);
132        }
133
134        /**
135         * <!-- begin-user-doc -->
136         * <!-- end-user-doc -->
137         * @generated
138         */
139        @Override
140        public void setName(String newName) {
141                eDynamicSet(GitLabPackage.PROJECT_SHARED_GROUP__NAME, GitLabPackage.Literals.PROJECT_SHARED_GROUP__NAME, newName);
142        }
143
144        /**
145         * <!-- begin-user-doc -->
146         * <!-- end-user-doc -->
147         * @generated
148         */
149        @Override
150        public String getFullPath() {
151                return (String)eDynamicGet(GitLabPackage.PROJECT_SHARED_GROUP__FULL_PATH, GitLabPackage.Literals.PROJECT_SHARED_GROUP__FULL_PATH, true, true);
152        }
153
154        /**
155         * <!-- begin-user-doc -->
156         * <!-- end-user-doc -->
157         * @generated
158         */
159        @Override
160        public void setFullPath(String newFullPath) {
161                eDynamicSet(GitLabPackage.PROJECT_SHARED_GROUP__FULL_PATH, GitLabPackage.Literals.PROJECT_SHARED_GROUP__FULL_PATH, newFullPath);
162        }
163
164        /**
165         * <!-- begin-user-doc -->
166         * <!-- end-user-doc -->
167         * @generated
168         */
169        @Override
170        public AccessLevel getAccessLevel() {
171                return (AccessLevel)eDynamicGet(GitLabPackage.PROJECT_SHARED_GROUP__ACCESS_LEVEL, GitLabPackage.Literals.PROJECT_SHARED_GROUP__ACCESS_LEVEL, true, true);
172        }
173
174        /**
175         * <!-- begin-user-doc -->
176         * <!-- end-user-doc -->
177         * @generated
178         */
179        @Override
180        public void setAccessLevel(AccessLevel newAccessLevel) {
181                eDynamicSet(GitLabPackage.PROJECT_SHARED_GROUP__ACCESS_LEVEL, GitLabPackage.Literals.PROJECT_SHARED_GROUP__ACCESS_LEVEL, newAccessLevel);
182        }
183
184        /**
185         * <!-- begin-user-doc -->
186         * <!-- end-user-doc -->
187         * @generated
188         */
189        @Override
190        public Group getGroup() {
191                return (Group)eDynamicGet(GitLabPackage.PROJECT_SHARED_GROUP__GROUP, GitLabPackage.Literals.PROJECT_SHARED_GROUP__GROUP, true, true);
192        }
193
194        /**
195         * <!-- begin-user-doc -->
196         * <!-- end-user-doc -->
197         * @generated
198         */
199        public Group basicGetGroup() {
200                return (Group)eDynamicGet(GitLabPackage.PROJECT_SHARED_GROUP__GROUP, GitLabPackage.Literals.PROJECT_SHARED_GROUP__GROUP, false, true);
201        }
202
203        /**
204         * <!-- begin-user-doc -->
205         * <!-- end-user-doc -->
206         * @generated
207         */
208        public NotificationChain basicSetGroup(Group newGroup, NotificationChain msgs) {
209                msgs = eDynamicInverseAdd((InternalEObject)newGroup, GitLabPackage.PROJECT_SHARED_GROUP__GROUP, msgs);
210                return msgs;
211        }
212
213        /**
214         * <!-- begin-user-doc -->
215         * <!-- end-user-doc -->
216         * @generated
217         */
218        @Override
219        public void setGroup(Group newGroup) {
220                eDynamicSet(GitLabPackage.PROJECT_SHARED_GROUP__GROUP, GitLabPackage.Literals.PROJECT_SHARED_GROUP__GROUP, newGroup);
221        }
222
223        /**
224         * <!-- begin-user-doc -->
225         * <!-- end-user-doc -->
226         * @generated
227         */
228        @Override
229        public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
230                switch (featureID) {
231                        case GitLabPackage.PROJECT_SHARED_GROUP__GROUP:
232                                Group group = basicGetGroup();
233                                if (group != null)
234                                        msgs = ((InternalEObject)group).eInverseRemove(this, GitLabPackage.GROUP__SHARES, Group.class, msgs);
235                                return basicSetGroup((Group)otherEnd, msgs);
236                }
237                return super.eInverseAdd(otherEnd, featureID, msgs);
238        }
239
240        /**
241         * <!-- begin-user-doc -->
242         * <!-- end-user-doc -->
243         * @generated
244         */
245        @Override
246        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
247                switch (featureID) {
248                        case GitLabPackage.PROJECT_SHARED_GROUP__GROUP:
249                                return basicSetGroup(null, msgs);
250                }
251                return super.eInverseRemove(otherEnd, featureID, msgs);
252        }
253
254        /**
255         * <!-- begin-user-doc -->
256         * <!-- end-user-doc -->
257         * @generated
258         */
259        @Override
260        public Object eGet(int featureID, boolean resolve, boolean coreType) {
261                switch (featureID) {
262                        case GitLabPackage.PROJECT_SHARED_GROUP__ID:
263                                return getId();
264                        case GitLabPackage.PROJECT_SHARED_GROUP__NAME:
265                                return getName();
266                        case GitLabPackage.PROJECT_SHARED_GROUP__FULL_PATH:
267                                return getFullPath();
268                        case GitLabPackage.PROJECT_SHARED_GROUP__ACCESS_LEVEL:
269                                return getAccessLevel();
270                        case GitLabPackage.PROJECT_SHARED_GROUP__GROUP:
271                                if (resolve) return getGroup();
272                                return basicGetGroup();
273                }
274                return super.eGet(featureID, resolve, coreType);
275        }
276
277        /**
278         * <!-- begin-user-doc -->
279         * <!-- end-user-doc -->
280         * @generated
281         */
282        @Override
283        public void eSet(int featureID, Object newValue) {
284                switch (featureID) {
285                        case GitLabPackage.PROJECT_SHARED_GROUP__ID:
286                                setId((Long)newValue);
287                                return;
288                        case GitLabPackage.PROJECT_SHARED_GROUP__NAME:
289                                setName((String)newValue);
290                                return;
291                        case GitLabPackage.PROJECT_SHARED_GROUP__FULL_PATH:
292                                setFullPath((String)newValue);
293                                return;
294                        case GitLabPackage.PROJECT_SHARED_GROUP__ACCESS_LEVEL:
295                                setAccessLevel((AccessLevel)newValue);
296                                return;
297                        case GitLabPackage.PROJECT_SHARED_GROUP__GROUP:
298                                setGroup((Group)newValue);
299                                return;
300                }
301                super.eSet(featureID, newValue);
302        }
303
304        /**
305         * <!-- begin-user-doc -->
306         * <!-- end-user-doc -->
307         * @generated
308         */
309        @Override
310        public void eUnset(int featureID) {
311                switch (featureID) {
312                        case GitLabPackage.PROJECT_SHARED_GROUP__ID:
313                                setId(ID_EDEFAULT);
314                                return;
315                        case GitLabPackage.PROJECT_SHARED_GROUP__NAME:
316                                setName(NAME_EDEFAULT);
317                                return;
318                        case GitLabPackage.PROJECT_SHARED_GROUP__FULL_PATH:
319                                setFullPath(FULL_PATH_EDEFAULT);
320                                return;
321                        case GitLabPackage.PROJECT_SHARED_GROUP__ACCESS_LEVEL:
322                                setAccessLevel(ACCESS_LEVEL_EDEFAULT);
323                                return;
324                        case GitLabPackage.PROJECT_SHARED_GROUP__GROUP:
325                                setGroup((Group)null);
326                                return;
327                }
328                super.eUnset(featureID);
329        }
330
331        /**
332         * <!-- begin-user-doc -->
333         * <!-- end-user-doc -->
334         * @generated
335         */
336        @Override
337        public boolean eIsSet(int featureID) {
338                switch (featureID) {
339                        case GitLabPackage.PROJECT_SHARED_GROUP__ID:
340                                return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT.equals(getId());
341                        case GitLabPackage.PROJECT_SHARED_GROUP__NAME:
342                                return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
343                        case GitLabPackage.PROJECT_SHARED_GROUP__FULL_PATH:
344                                return FULL_PATH_EDEFAULT == null ? getFullPath() != null : !FULL_PATH_EDEFAULT.equals(getFullPath());
345                        case GitLabPackage.PROJECT_SHARED_GROUP__ACCESS_LEVEL:
346                                return getAccessLevel() != ACCESS_LEVEL_EDEFAULT;
347                        case GitLabPackage.PROJECT_SHARED_GROUP__GROUP:
348                                return basicGetGroup() != null;
349                }
350                return super.eIsSet(featureID);
351        }
352
353} //ProjectSharedGroupImpl