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