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