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