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