001 /**
002 * <copyright>
003 * </copyright>
004 *
005 * $Id$
006 */
007 package com.hammurapi.eventbus.snapshot.impl;
008
009 import com.hammurapi.eventbus.snapshot.Derivation;
010 import com.hammurapi.eventbus.snapshot.Event;
011 import com.hammurapi.eventbus.snapshot.Handler;
012 import com.hammurapi.eventbus.snapshot.SnapshotPackage;
013
014 import java.util.Collection;
015
016 import org.eclipse.emf.common.notify.Notification;
017
018 import org.eclipse.emf.common.notify.NotificationChain;
019 import org.eclipse.emf.common.util.EList;
020
021 import org.eclipse.emf.ecore.EClass;
022 import org.eclipse.emf.ecore.InternalEObject;
023
024 import org.eclipse.emf.ecore.impl.ENotificationImpl;
025 import org.eclipse.emf.ecore.impl.EObjectImpl;
026
027 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
028 import org.eclipse.emf.ecore.util.InternalEList;
029 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
030
031 /**
032 * <!-- begin-user-doc -->
033 * An implementation of the model object '<em><b>Derivation</b></em>'.
034 * <!-- end-user-doc -->
035 * <p>
036 * The following features are implemented:
037 * <ul>
038 * <li>{@link com.hammurapi.eventbus.snapshot.impl.DerivationImpl#getHandler <em>Handler</em>}</li>
039 * <li>{@link com.hammurapi.eventbus.snapshot.impl.DerivationImpl#getInputs <em>Inputs</em>}</li>
040 * </ul>
041 * </p>
042 *
043 * @generated
044 */
045 public class DerivationImpl extends EObjectImpl implements Derivation {
046 /**
047 * The cached value of the '{@link #getHandler() <em>Handler</em>}' reference.
048 * <!-- begin-user-doc -->
049 * <!-- end-user-doc -->
050 * @see #getHandler()
051 * @generated
052 * @ordered
053 */
054 protected Handler handler;
055
056 /**
057 * The cached value of the '{@link #getInputs() <em>Inputs</em>}' reference list.
058 * <!-- begin-user-doc -->
059 * <!-- end-user-doc -->
060 * @see #getInputs()
061 * @generated
062 * @ordered
063 */
064 protected EList<Event> inputs;
065
066 /**
067 * <!-- begin-user-doc -->
068 * <!-- end-user-doc -->
069 * @generated
070 */
071 protected DerivationImpl() {
072 super();
073 }
074
075 /**
076 * <!-- begin-user-doc -->
077 * <!-- end-user-doc -->
078 * @generated
079 */
080 @Override
081 protected EClass eStaticClass() {
082 return SnapshotPackage.Literals.DERIVATION;
083 }
084
085 /**
086 * <!-- begin-user-doc -->
087 * <!-- end-user-doc -->
088 * @generated
089 */
090 public Handler getHandler() {
091 if (handler != null && handler.eIsProxy()) {
092 InternalEObject oldHandler = (InternalEObject)handler;
093 handler = (Handler)eResolveProxy(oldHandler);
094 if (handler != oldHandler) {
095 if (eNotificationRequired())
096 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SnapshotPackage.DERIVATION__HANDLER, oldHandler, handler));
097 }
098 }
099 return handler;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 public Handler basicGetHandler() {
108 return handler;
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 public void setHandler(Handler newHandler) {
117 Handler oldHandler = handler;
118 handler = newHandler;
119 if (eNotificationRequired())
120 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.DERIVATION__HANDLER, oldHandler, handler));
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public EList<Event> getInputs() {
129 if (inputs == null) {
130 inputs = new EObjectResolvingEList<Event>(Event.class, this, SnapshotPackage.DERIVATION__INPUTS);
131 }
132 return inputs;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public Object eGet(int featureID, boolean resolve, boolean coreType) {
142 switch (featureID) {
143 case SnapshotPackage.DERIVATION__HANDLER:
144 if (resolve) return getHandler();
145 return basicGetHandler();
146 case SnapshotPackage.DERIVATION__INPUTS:
147 return getInputs();
148 }
149 return super.eGet(featureID, resolve, coreType);
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 @SuppressWarnings("unchecked")
158 @Override
159 public void eSet(int featureID, Object newValue) {
160 switch (featureID) {
161 case SnapshotPackage.DERIVATION__HANDLER:
162 setHandler((Handler)newValue);
163 return;
164 case SnapshotPackage.DERIVATION__INPUTS:
165 getInputs().clear();
166 getInputs().addAll((Collection<? extends Event>)newValue);
167 return;
168 }
169 super.eSet(featureID, newValue);
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public void eUnset(int featureID) {
179 switch (featureID) {
180 case SnapshotPackage.DERIVATION__HANDLER:
181 setHandler((Handler)null);
182 return;
183 case SnapshotPackage.DERIVATION__INPUTS:
184 getInputs().clear();
185 return;
186 }
187 super.eUnset(featureID);
188 }
189
190 /**
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 @Override
196 public boolean eIsSet(int featureID) {
197 switch (featureID) {
198 case SnapshotPackage.DERIVATION__HANDLER:
199 return handler != null;
200 case SnapshotPackage.DERIVATION__INPUTS:
201 return inputs != null && !inputs.isEmpty();
202 }
203 return super.eIsSet(featureID);
204 }
205
206 } //DerivationImpl