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