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.nasdanika.models.gitlab.GitLabPackage;
011import org.nasdanika.models.gitlab.Owner;
012import org.nasdanika.models.gitlab.User;
013
014/**
015 * <!-- begin-user-doc -->
016 * An implementation of the model object '<em><b>Owner</b></em>'.
017 * <!-- end-user-doc -->
018 * <p>
019 * The following features are implemented:
020 * </p>
021 * <ul>
022 *   <li>{@link org.nasdanika.models.gitlab.impl.OwnerImpl#getUser <em>User</em>}</li>
023 * </ul>
024 *
025 * @generated
026 */
027public class OwnerImpl extends AbstractUserImpl implements Owner {
028        /**
029         * <!-- begin-user-doc -->
030         * <!-- end-user-doc -->
031         * @generated
032         */
033        protected OwnerImpl() {
034                super();
035        }
036
037        /**
038         * <!-- begin-user-doc -->
039         * <!-- end-user-doc -->
040         * @generated
041         */
042        @Override
043        protected EClass eStaticClass() {
044                return GitLabPackage.Literals.OWNER;
045        }
046
047        /**
048         * <!-- begin-user-doc -->
049         * <!-- end-user-doc -->
050         * @generated
051         */
052        @Override
053        public User getUser() {
054                return (User)eDynamicGet(GitLabPackage.OWNER__USER, GitLabPackage.Literals.OWNER__USER, true, true);
055        }
056
057        /**
058         * <!-- begin-user-doc -->
059         * <!-- end-user-doc -->
060         * @generated
061         */
062        public User basicGetUser() {
063                return (User)eDynamicGet(GitLabPackage.OWNER__USER, GitLabPackage.Literals.OWNER__USER, false, true);
064        }
065
066        /**
067         * <!-- begin-user-doc -->
068         * <!-- end-user-doc -->
069         * @generated
070         */
071        public NotificationChain basicSetUser(User newUser, NotificationChain msgs) {
072                msgs = eDynamicInverseAdd((InternalEObject)newUser, GitLabPackage.OWNER__USER, msgs);
073                return msgs;
074        }
075
076        /**
077         * <!-- begin-user-doc -->
078         * <!-- end-user-doc -->
079         * @generated
080         */
081        @Override
082        public void setUser(User newUser) {
083                eDynamicSet(GitLabPackage.OWNER__USER, GitLabPackage.Literals.OWNER__USER, newUser);
084        }
085
086        /**
087         * <!-- begin-user-doc -->
088         * <!-- end-user-doc -->
089         * @generated
090         */
091        @Override
092        public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
093                switch (featureID) {
094                        case GitLabPackage.OWNER__USER:
095                                User user = basicGetUser();
096                                if (user != null)
097                                        msgs = ((InternalEObject)user).eInverseRemove(this, GitLabPackage.USER__OWNS, User.class, msgs);
098                                return basicSetUser((User)otherEnd, msgs);
099                }
100                return super.eInverseAdd(otherEnd, featureID, msgs);
101        }
102
103        /**
104         * <!-- begin-user-doc -->
105         * <!-- end-user-doc -->
106         * @generated
107         */
108        @Override
109        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
110                switch (featureID) {
111                        case GitLabPackage.OWNER__USER:
112                                return basicSetUser(null, msgs);
113                }
114                return super.eInverseRemove(otherEnd, featureID, msgs);
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.OWNER__USER:
126                                if (resolve) return getUser();
127                                return basicGetUser();
128                }
129                return super.eGet(featureID, resolve, coreType);
130        }
131
132        /**
133         * <!-- begin-user-doc -->
134         * <!-- end-user-doc -->
135         * @generated
136         */
137        @Override
138        public void eSet(int featureID, Object newValue) {
139                switch (featureID) {
140                        case GitLabPackage.OWNER__USER:
141                                setUser((User)newValue);
142                                return;
143                }
144                super.eSet(featureID, newValue);
145        }
146
147        /**
148         * <!-- begin-user-doc -->
149         * <!-- end-user-doc -->
150         * @generated
151         */
152        @Override
153        public void eUnset(int featureID) {
154                switch (featureID) {
155                        case GitLabPackage.OWNER__USER:
156                                setUser((User)null);
157                                return;
158                }
159                super.eUnset(featureID);
160        }
161
162        /**
163         * <!-- begin-user-doc -->
164         * <!-- end-user-doc -->
165         * @generated
166         */
167        @Override
168        public boolean eIsSet(int featureID) {
169                switch (featureID) {
170                        case GitLabPackage.OWNER__USER:
171                                return basicGetUser() != null;
172                }
173                return super.eIsSet(featureID);
174        }
175
176} //OwnerImpl