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