123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- /**
- */
- package ua.ansymo.hintco.impl;
- import java.lang.reflect.InvocationTargetException;
- import java.util.Collection;
- import org.eclipse.emf.common.notify.Notification;
- import org.eclipse.emf.common.notify.NotificationChain;
- import org.eclipse.emf.common.util.EList;
- import org.eclipse.emf.ecore.EClass;
- import org.eclipse.emf.ecore.InternalEObject;
- import org.eclipse.emf.ecore.impl.ENotificationImpl;
- import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
- import org.eclipse.emf.ecore.util.InternalEList;
- import ua.ansymo.hintco.HierarchicalUnitPort;
- import ua.ansymo.hintco.HintcoPackage;
- import ua.ansymo.hintco.InputPortInstance;
- import ua.ansymo.hintco.OutputPortInstance;
- import ua.ansymo.hintco.PortInstance;
- /**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Input Port Instance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- * <li>{@link ua.ansymo.hintco.impl.InputPortInstanceImpl#getExtrapolationCost <em>Extrapolation Cost</em>}</li>
- * <li>{@link ua.ansymo.hintco.impl.InputPortInstanceImpl#getInternalValueTo <em>Internal Value To</em>}</li>
- * <li>{@link ua.ansymo.hintco.impl.InputPortInstanceImpl#getValueFrom <em>Value From</em>}</li>
- * </ul>
- *
- * @generated
- */
- public class InputPortInstanceImpl extends PortInstanceImpl implements InputPortInstance {
- /**
- * The default value of the '{@link #getExtrapolationCost() <em>Extrapolation Cost</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getExtrapolationCost()
- * @generated
- * @ordered
- */
- protected static final float EXTRAPOLATION_COST_EDEFAULT = 1.0F;
- /**
- * The cached value of the '{@link #getExtrapolationCost() <em>Extrapolation Cost</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getExtrapolationCost()
- * @generated
- * @ordered
- */
- protected float extrapolationCost = EXTRAPOLATION_COST_EDEFAULT;
- /**
- * The cached value of the '{@link #getInternalValueTo() <em>Internal Value To</em>}' reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getInternalValueTo()
- * @generated
- * @ordered
- */
- protected EList<OutputPortInstance> internalValueTo;
- /**
- * The cached value of the '{@link #getValueFrom() <em>Value From</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getValueFrom()
- * @generated
- * @ordered
- */
- protected OutputPortInstance valueFrom;
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected InputPortInstanceImpl() {
- super();
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return HintcoPackage.Literals.INPUT_PORT_INSTANCE;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public float getExtrapolationCost() {
- return extrapolationCost;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setExtrapolationCost(float newExtrapolationCost) {
- float oldExtrapolationCost = extrapolationCost;
- extrapolationCost = newExtrapolationCost;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, HintcoPackage.INPUT_PORT_INSTANCE__EXTRAPOLATION_COST, oldExtrapolationCost, extrapolationCost));
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<OutputPortInstance> getInternalValueTo() {
- if (internalValueTo == null) {
- internalValueTo = new EObjectWithInverseResolvingEList.ManyInverse<OutputPortInstance>(OutputPortInstance.class, this, HintcoPackage.INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO, HintcoPackage.OUTPUT_PORT_INSTANCE__INTERNAL_VALUE_FROM);
- }
- return internalValueTo;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public OutputPortInstance getValueFrom() {
- if (valueFrom != null && valueFrom.eIsProxy()) {
- InternalEObject oldValueFrom = (InternalEObject)valueFrom;
- valueFrom = (OutputPortInstance)eResolveProxy(oldValueFrom);
- if (valueFrom != oldValueFrom) {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM, oldValueFrom, valueFrom));
- }
- }
- return valueFrom;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public OutputPortInstance basicGetValueFrom() {
- return valueFrom;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetValueFrom(OutputPortInstance newValueFrom, NotificationChain msgs) {
- OutputPortInstance oldValueFrom = valueFrom;
- valueFrom = newValueFrom;
- if (eNotificationRequired()) {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM, oldValueFrom, newValueFrom);
- if (msgs == null) msgs = notification; else msgs.add(notification);
- }
- return msgs;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setValueFrom(OutputPortInstance newValueFrom) {
- if (newValueFrom != valueFrom) {
- NotificationChain msgs = null;
- if (valueFrom != null)
- msgs = ((InternalEObject)valueFrom).eInverseRemove(this, HintcoPackage.OUTPUT_PORT_INSTANCE__VALUE_TO, OutputPortInstance.class, msgs);
- if (newValueFrom != null)
- msgs = ((InternalEObject)newValueFrom).eInverseAdd(this, HintcoPackage.OUTPUT_PORT_INSTANCE__VALUE_TO, OutputPortInstance.class, msgs);
- msgs = basicSetValueFrom(newValueFrom, msgs);
- if (msgs != null) msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM, newValueFrom, newValueFrom));
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public OutputPortInstance getRealValueFrom() {
- OutputPortInstance _xifexpression = null;
- OutputPortInstance _valueFrom = this.getValueFrom();
- if ((_valueFrom instanceof HierarchicalUnitPort)) {
- OutputPortInstance _valueFrom_1 = this.getValueFrom();
- _xifexpression = ((HierarchicalUnitPort) _valueFrom_1).getRealValueFrom();
- }
- else {
- _xifexpression = this.getValueFrom();
- }
- return _xifexpression;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public boolean getsValueFrom(final PortInstance p) {
- OutputPortInstance _valueFrom = this.getValueFrom();
- boolean _tripleEquals = (_valueFrom == p);
- if (_tripleEquals) {
- return true;
- }
- else {
- OutputPortInstance _valueFrom_1 = this.getValueFrom();
- if ((_valueFrom_1 instanceof InputPortInstance)) {
- OutputPortInstance _valueFrom_2 = this.getValueFrom();
- return ((InputPortInstance) _valueFrom_2).getsValueFrom(p);
- }
- else {
- return false;
- }
- }
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public boolean isInput() {
- return true;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case HintcoPackage.INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getInternalValueTo()).basicAdd(otherEnd, msgs);
- case HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM:
- if (valueFrom != null)
- msgs = ((InternalEObject)valueFrom).eInverseRemove(this, HintcoPackage.OUTPUT_PORT_INSTANCE__VALUE_TO, OutputPortInstance.class, msgs);
- return basicSetValueFrom((OutputPortInstance)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case HintcoPackage.INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO:
- return ((InternalEList<?>)getInternalValueTo()).basicRemove(otherEnd, msgs);
- case HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM:
- return basicSetValueFrom(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case HintcoPackage.INPUT_PORT_INSTANCE__EXTRAPOLATION_COST:
- return getExtrapolationCost();
- case HintcoPackage.INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO:
- return getInternalValueTo();
- case HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM:
- if (resolve) return getValueFrom();
- return basicGetValueFrom();
- }
- return super.eGet(featureID, resolve, coreType);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case HintcoPackage.INPUT_PORT_INSTANCE__EXTRAPOLATION_COST:
- setExtrapolationCost((Float)newValue);
- return;
- case HintcoPackage.INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO:
- getInternalValueTo().clear();
- getInternalValueTo().addAll((Collection<? extends OutputPortInstance>)newValue);
- return;
- case HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM:
- setValueFrom((OutputPortInstance)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case HintcoPackage.INPUT_PORT_INSTANCE__EXTRAPOLATION_COST:
- setExtrapolationCost(EXTRAPOLATION_COST_EDEFAULT);
- return;
- case HintcoPackage.INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO:
- getInternalValueTo().clear();
- return;
- case HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM:
- setValueFrom((OutputPortInstance)null);
- return;
- }
- super.eUnset(featureID);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case HintcoPackage.INPUT_PORT_INSTANCE__EXTRAPOLATION_COST:
- return extrapolationCost != EXTRAPOLATION_COST_EDEFAULT;
- case HintcoPackage.INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO:
- return internalValueTo != null && !internalValueTo.isEmpty();
- case HintcoPackage.INPUT_PORT_INSTANCE__VALUE_FROM:
- return valueFrom != null;
- }
- return super.eIsSet(featureID);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
- if (baseClass == PortInstance.class) {
- switch (baseOperationID) {
- case HintcoPackage.PORT_INSTANCE___IS_INPUT: return HintcoPackage.INPUT_PORT_INSTANCE___IS_INPUT;
- case HintcoPackage.PORT_INSTANCE___GETS_VALUE_FROM__PORTINSTANCE: return HintcoPackage.INPUT_PORT_INSTANCE___GETS_VALUE_FROM__PORTINSTANCE;
- default: return super.eDerivedOperationID(baseOperationID, baseClass);
- }
- }
- return super.eDerivedOperationID(baseOperationID, baseClass);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
- switch (operationID) {
- case HintcoPackage.INPUT_PORT_INSTANCE___GET_REAL_VALUE_FROM:
- return getRealValueFrom();
- case HintcoPackage.INPUT_PORT_INSTANCE___GETS_VALUE_FROM__PORTINSTANCE:
- return getsValueFrom((PortInstance)arguments.get(0));
- case HintcoPackage.INPUT_PORT_INSTANCE___IS_INPUT:
- return isInput();
- }
- return super.eInvoke(operationID, arguments);
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString() {
- if (eIsProxy()) return super.toString();
- StringBuilder result = new StringBuilder(super.toString());
- result.append(" (extrapolationCost: ");
- result.append(extrapolationCost);
- result.append(')');
- return result.toString();
- }
- } //InputPortInstanceImpl
|