001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.review.impl;
008    
009    import com.hammurapi.config.Named;
010    import com.hammurapi.config.Factory;
011    
012    import com.hammurapi.review.ArtifactType;
013    import com.hammurapi.review.ReviewPackage;
014    
015    import java.util.Collection;
016    
017    import org.eclipse.emf.common.util.EList;
018    
019    import org.eclipse.emf.ecore.EClass;
020    
021    import org.eclipse.emf.ecore.util.EObjectResolvingEList;
022    
023    /**
024     * <!-- begin-user-doc -->
025     * An implementation of the model object '<em><b>Artifact Type</b></em>'.
026     * <!-- end-user-doc -->
027     * <p>
028     * The following features are implemented:
029     * <ul>
030     *   <li>{@link com.hammurapi.review.impl.ArtifactTypeImpl#getLanguageModules <em>Language Modules</em>}</li>
031     * </ul>
032     * </p>
033     *
034     * @generated
035     */
036    public class ArtifactTypeImpl extends InspectorCategoryImpl implements ArtifactType {
037            /**
038             * The cached value of the '{@link #getLanguageModules() <em>Language Modules</em>}' reference list.
039             * <!-- begin-user-doc -->
040             * <!-- end-user-doc -->
041             * @see #getLanguageModules()
042             * @generated
043             * @ordered
044             */
045            protected EList<Named> languageModules;
046    
047            /**
048             * <!-- begin-user-doc -->
049             * <!-- end-user-doc -->
050             * @generated
051             */
052            protected ArtifactTypeImpl() {
053                    super();
054            }
055    
056            /**
057             * <!-- begin-user-doc -->
058             * <!-- end-user-doc -->
059             * @generated
060             */
061            @Override
062            protected EClass eStaticClass() {
063                    return ReviewPackage.Literals.ARTIFACT_TYPE;
064            }
065    
066            /**
067             * <!-- begin-user-doc -->
068             * <!-- end-user-doc -->
069             * @generated
070             */
071            public EList<Named> getLanguageModules() {
072                    if (languageModules == null) {
073                            languageModules = new EObjectResolvingEList<Named>(Named.class, this, ReviewPackage.ARTIFACT_TYPE__LANGUAGE_MODULES);
074                    }
075                    return languageModules;
076            }
077    
078            /**
079             * <!-- begin-user-doc -->
080             * <!-- end-user-doc -->
081             * @generated
082             */
083            @Override
084            public Object eGet(int featureID, boolean resolve, boolean coreType) {
085                    switch (featureID) {
086                            case ReviewPackage.ARTIFACT_TYPE__LANGUAGE_MODULES:
087                                    return getLanguageModules();
088                    }
089                    return super.eGet(featureID, resolve, coreType);
090            }
091    
092            /**
093             * <!-- begin-user-doc -->
094             * <!-- end-user-doc -->
095             * @generated
096             */
097            @SuppressWarnings("unchecked")
098            @Override
099            public void eSet(int featureID, Object newValue) {
100                    switch (featureID) {
101                            case ReviewPackage.ARTIFACT_TYPE__LANGUAGE_MODULES:
102                                    getLanguageModules().clear();
103                                    getLanguageModules().addAll((Collection<? extends Named>)newValue);
104                                    return;
105                    }
106                    super.eSet(featureID, newValue);
107            }
108    
109            /**
110             * <!-- begin-user-doc -->
111             * <!-- end-user-doc -->
112             * @generated
113             */
114            @Override
115            public void eUnset(int featureID) {
116                    switch (featureID) {
117                            case ReviewPackage.ARTIFACT_TYPE__LANGUAGE_MODULES:
118                                    getLanguageModules().clear();
119                                    return;
120                    }
121                    super.eUnset(featureID);
122            }
123    
124            /**
125             * <!-- begin-user-doc -->
126             * <!-- end-user-doc -->
127             * @generated
128             */
129            @Override
130            public boolean eIsSet(int featureID) {
131                    switch (featureID) {
132                            case ReviewPackage.ARTIFACT_TYPE__LANGUAGE_MODULES:
133                                    return languageModules != null && !languageModules.isEmpty();
134                    }
135                    return super.eIsSet(featureID);
136            }
137    
138    } //ArtifactTypeImpl