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;
014
015import org.eclipse.emf.ecore.util.InternalEList;
016
017import org.nasdanika.models.gitlab.GitLabPackage;
018import org.nasdanika.models.gitlab.Tree;
019import org.nasdanika.ncore.NcorePackage;
020import org.nasdanika.ncore.TreeItem;
021
022/**
023 * <!-- begin-user-doc -->
024 * An implementation of the model object '<em><b>Tree</b></em>'.
025 * <!-- end-user-doc -->
026 * <p>
027 * The following features are implemented:
028 * </p>
029 * <ul>
030 *   <li>{@link org.nasdanika.models.gitlab.impl.TreeImpl#getTreeItems <em>Tree Items</em>}</li>
031 *   <li>{@link org.nasdanika.models.gitlab.impl.TreeImpl#getTreeItemsLoaded <em>Tree Items Loaded</em>}</li>
032 * </ul>
033 *
034 * @generated
035 */
036public class TreeImpl extends TreeItemImpl implements Tree {
037        /**
038         * The default value of the '{@link #getTreeItemsLoaded() <em>Tree Items Loaded</em>}' attribute.
039         * <!-- begin-user-doc -->
040         * <!-- end-user-doc -->
041         * @see #getTreeItemsLoaded()
042         * @generated
043         * @ordered
044         */
045        protected static final Date TREE_ITEMS_LOADED_EDEFAULT = null;
046
047        /**
048         * <!-- begin-user-doc -->
049         * <!-- end-user-doc -->
050         * @generated
051         */
052        protected TreeImpl() {
053                super();
054        }
055
056        /**
057         * <!-- begin-user-doc -->
058         * <!-- end-user-doc -->
059         * @generated
060         */
061        @Override
062        protected EClass eStaticClass() {
063                return GitLabPackage.Literals.TREE;
064        }
065
066        /**
067         * <!-- begin-user-doc -->
068         * <!-- end-user-doc -->
069         * @generated
070         */
071        @SuppressWarnings("unchecked")
072        @Override
073        public EList<TreeItem> getTreeItems() {
074                return (EList<TreeItem>)eDynamicGet(GitLabPackage.TREE__TREE_ITEMS, NcorePackage.Literals.TREE__TREE_ITEMS, true, true);
075        }
076
077        /**
078         * <!-- begin-user-doc -->
079         * <!-- end-user-doc -->
080         * @generated
081         */
082        @Override
083        public Date getTreeItemsLoaded() {
084                return (Date)eDynamicGet(GitLabPackage.TREE__TREE_ITEMS_LOADED, GitLabPackage.Literals.TREE__TREE_ITEMS_LOADED, true, true);
085        }
086
087        /**
088         * <!-- begin-user-doc -->
089         * <!-- end-user-doc -->
090         * @generated
091         */
092        @Override
093        public void setTreeItemsLoaded(Date newTreeItemsLoaded) {
094                eDynamicSet(GitLabPackage.TREE__TREE_ITEMS_LOADED, GitLabPackage.Literals.TREE__TREE_ITEMS_LOADED, newTreeItemsLoaded);
095        }
096
097        /**
098         * <!-- begin-user-doc -->
099         * <!-- end-user-doc -->
100         * @generated
101         */
102        @Override
103        public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
104                switch (featureID) {
105                        case GitLabPackage.TREE__TREE_ITEMS:
106                                return ((InternalEList<?>)getTreeItems()).basicRemove(otherEnd, msgs);
107                }
108                return super.eInverseRemove(otherEnd, featureID, msgs);
109        }
110
111        /**
112         * <!-- begin-user-doc -->
113         * <!-- end-user-doc -->
114         * @generated
115         */
116        @Override
117        public Object eGet(int featureID, boolean resolve, boolean coreType) {
118                switch (featureID) {
119                        case GitLabPackage.TREE__TREE_ITEMS:
120                                return getTreeItems();
121                        case GitLabPackage.TREE__TREE_ITEMS_LOADED:
122                                return getTreeItemsLoaded();
123                }
124                return super.eGet(featureID, resolve, coreType);
125        }
126
127        /**
128         * <!-- begin-user-doc -->
129         * <!-- end-user-doc -->
130         * @generated
131         */
132        @SuppressWarnings("unchecked")
133        @Override
134        public void eSet(int featureID, Object newValue) {
135                switch (featureID) {
136                        case GitLabPackage.TREE__TREE_ITEMS:
137                                getTreeItems().clear();
138                                getTreeItems().addAll((Collection<? extends TreeItem>)newValue);
139                                return;
140                        case GitLabPackage.TREE__TREE_ITEMS_LOADED:
141                                setTreeItemsLoaded((Date)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.TREE__TREE_ITEMS:
156                                getTreeItems().clear();
157                                return;
158                        case GitLabPackage.TREE__TREE_ITEMS_LOADED:
159                                setTreeItemsLoaded(TREE_ITEMS_LOADED_EDEFAULT);
160                                return;
161                }
162                super.eUnset(featureID);
163        }
164
165        /**
166         * <!-- begin-user-doc -->
167         * <!-- end-user-doc -->
168         * @generated
169         */
170        @Override
171        public boolean eIsSet(int featureID) {
172                switch (featureID) {
173                        case GitLabPackage.TREE__TREE_ITEMS:
174                                return !getTreeItems().isEmpty();
175                        case GitLabPackage.TREE__TREE_ITEMS_LOADED:
176                                return TREE_ITEMS_LOADED_EDEFAULT == null ? getTreeItemsLoaded() != null : !TREE_ITEMS_LOADED_EDEFAULT.equals(getTreeItemsLoaded());
177                }
178                return super.eIsSet(featureID);
179        }
180
181        /**
182         * <!-- begin-user-doc -->
183         * <!-- end-user-doc -->
184         * @generated
185         */
186        @Override
187        public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
188                if (baseClass == org.nasdanika.ncore.Tree.class) {
189                        switch (derivedFeatureID) {
190                                case GitLabPackage.TREE__TREE_ITEMS: return NcorePackage.TREE__TREE_ITEMS;
191                                default: return -1;
192                        }
193                }
194                return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
195        }
196
197        /**
198         * <!-- begin-user-doc -->
199         * <!-- end-user-doc -->
200         * @generated
201         */
202        @Override
203        public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
204                if (baseClass == org.nasdanika.ncore.Tree.class) {
205                        switch (baseFeatureID) {
206                                case NcorePackage.TREE__TREE_ITEMS: return GitLabPackage.TREE__TREE_ITEMS;
207                                default: return -1;
208                        }
209                }
210                return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
211        }
212
213} //TreeImpl