/**
*/
package net.certware.evidence.hugin.netDSL.impl;
import java.lang.Integer;
import net.certware.evidence.hugin.netDSL.Expression;
import net.certware.evidence.hugin.netDSL.IntegerLiteral;
import net.certware.evidence.hugin.netDSL.NetDSLPackage;
import net.certware.evidence.hugin.netDSL.TermExpression;
import net.certware.evidence.hugin.netDSL.TermLiteral;
import net.certware.evidence.hugin.netDSL.additiveExpression;
import net.certware.evidence.hugin.netDSL.andExpression;
import net.certware.evidence.hugin.netDSL.assignmentOpExpression;
import net.certware.evidence.hugin.netDSL.multiplicativeExpression;
import net.certware.evidence.hugin.netDSL.orExpression;
import net.certware.evidence.hugin.netDSL.relationalExpression;
import net.certware.evidence.hugin.netDSL.unaryExpression;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Integer Literal</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link net.certware.evidence.hugin.netDSL.impl.IntegerLiteralImpl#getOp <em>Op</em>}</li>
* <li>{@link net.certware.evidence.hugin.netDSL.impl.IntegerLiteralImpl#getExpr <em>Expr</em>}</li>
* <li>{@link net.certware.evidence.hugin.netDSL.impl.IntegerLiteralImpl#getX <em>X</em>}</li>
* <li>{@link net.certware.evidence.hugin.netDSL.impl.IntegerLiteralImpl#getY <em>Y</em>}</li>
* <li>{@link net.certware.evidence.hugin.netDSL.impl.IntegerLiteralImpl#getValue <em>Value</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class IntegerLiteralImpl extends PositionAttributeImpl implements IntegerLiteral
{
/**
* The default value of the '{@link #getOp() <em>Op</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOp()
* @generated
* @ordered
*/
protected static final String OP_EDEFAULT = null;
/**
* The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOp()
* @generated
* @ordered
*/
protected String op = OP_EDEFAULT;
/**
* The cached value of the '{@link #getExpr() <em>Expr</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getExpr()
* @generated
* @ordered
*/
protected TermExpression expr;
/**
* The cached value of the '{@link #getX() <em>X</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getX()
* @generated
* @ordered
*/
protected net.certware.evidence.hugin.netDSL.Integer x;
/**
* The cached value of the '{@link #getY() <em>Y</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getY()
* @generated
* @ordered
*/
protected net.certware.evidence.hugin.netDSL.Integer y;
/**
* The default value of the '{@link #getValue() <em>Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getValue()
* @generated
* @ordered
*/
protected static final int VALUE_EDEFAULT = 0;
/**
* The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getValue()
* @generated
* @ordered
*/
protected int value = VALUE_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected IntegerLiteralImpl()
{
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass()
{
return NetDSLPackage.Literals.INTEGER_LITERAL;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getOp()
{
return op;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setOp(String newOp)
{
String oldOp = op;
op = newOp;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__OP, oldOp, op));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TermExpression getExpr()
{
return expr;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetExpr(TermExpression newExpr, NotificationChain msgs)
{
TermExpression oldExpr = expr;
expr = newExpr;
if (eNotificationRequired())
{
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__EXPR, oldExpr, newExpr);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setExpr(TermExpression newExpr)
{
if (newExpr != expr)
{
NotificationChain msgs = null;
if (expr != null)
msgs = ((InternalEObject)expr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - NetDSLPackage.INTEGER_LITERAL__EXPR, null, msgs);
if (newExpr != null)
msgs = ((InternalEObject)newExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - NetDSLPackage.INTEGER_LITERAL__EXPR, null, msgs);
msgs = basicSetExpr(newExpr, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__EXPR, newExpr, newExpr));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public net.certware.evidence.hugin.netDSL.Integer getX()
{
return x;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetX(net.certware.evidence.hugin.netDSL.Integer newX, NotificationChain msgs)
{
net.certware.evidence.hugin.netDSL.Integer oldX = x;
x = newX;
if (eNotificationRequired())
{
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__X, oldX, newX);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setX(net.certware.evidence.hugin.netDSL.Integer newX)
{
if (newX != x)
{
NotificationChain msgs = null;
if (x != null)
msgs = ((InternalEObject)x).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - NetDSLPackage.INTEGER_LITERAL__X, null, msgs);
if (newX != null)
msgs = ((InternalEObject)newX).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - NetDSLPackage.INTEGER_LITERAL__X, null, msgs);
msgs = basicSetX(newX, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__X, newX, newX));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public net.certware.evidence.hugin.netDSL.Integer getY()
{
return y;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetY(net.certware.evidence.hugin.netDSL.Integer newY, NotificationChain msgs)
{
net.certware.evidence.hugin.netDSL.Integer oldY = y;
y = newY;
if (eNotificationRequired())
{
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__Y, oldY, newY);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setY(net.certware.evidence.hugin.netDSL.Integer newY)
{
if (newY != y)
{
NotificationChain msgs = null;
if (y != null)
msgs = ((InternalEObject)y).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - NetDSLPackage.INTEGER_LITERAL__Y, null, msgs);
if (newY != null)
msgs = ((InternalEObject)newY).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - NetDSLPackage.INTEGER_LITERAL__Y, null, msgs);
msgs = basicSetY(newY, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__Y, newY, newY));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getValue()
{
return value;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setValue(int newValue)
{
int oldValue = value;
value = newValue;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, NetDSLPackage.INTEGER_LITERAL__VALUE, oldValue, value));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
switch (featureID)
{
case NetDSLPackage.INTEGER_LITERAL__EXPR:
return basicSetExpr(null, msgs);
case NetDSLPackage.INTEGER_LITERAL__X:
return basicSetX(null, msgs);
case NetDSLPackage.INTEGER_LITERAL__Y:
return basicSetY(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 NetDSLPackage.INTEGER_LITERAL__OP:
return getOp();
case NetDSLPackage.INTEGER_LITERAL__EXPR:
return getExpr();
case NetDSLPackage.INTEGER_LITERAL__X:
return getX();
case NetDSLPackage.INTEGER_LITERAL__Y:
return getY();
case NetDSLPackage.INTEGER_LITERAL__VALUE:
return getValue();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue)
{
switch (featureID)
{
case NetDSLPackage.INTEGER_LITERAL__OP:
setOp((String)newValue);
return;
case NetDSLPackage.INTEGER_LITERAL__EXPR:
setExpr((TermExpression)newValue);
return;
case NetDSLPackage.INTEGER_LITERAL__X:
setX((net.certware.evidence.hugin.netDSL.Integer)newValue);
return;
case NetDSLPackage.INTEGER_LITERAL__Y:
setY((net.certware.evidence.hugin.netDSL.Integer)newValue);
return;
case NetDSLPackage.INTEGER_LITERAL__VALUE:
setValue((Integer)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID)
{
switch (featureID)
{
case NetDSLPackage.INTEGER_LITERAL__OP:
setOp(OP_EDEFAULT);
return;
case NetDSLPackage.INTEGER_LITERAL__EXPR:
setExpr((TermExpression)null);
return;
case NetDSLPackage.INTEGER_LITERAL__X:
setX((net.certware.evidence.hugin.netDSL.Integer)null);
return;
case NetDSLPackage.INTEGER_LITERAL__Y:
setY((net.certware.evidence.hugin.netDSL.Integer)null);
return;
case NetDSLPackage.INTEGER_LITERAL__VALUE:
setValue(VALUE_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID)
{
switch (featureID)
{
case NetDSLPackage.INTEGER_LITERAL__OP:
return OP_EDEFAULT == null ? op != null : !OP_EDEFAULT.equals(op);
case NetDSLPackage.INTEGER_LITERAL__EXPR:
return expr != null;
case NetDSLPackage.INTEGER_LITERAL__X:
return x != null;
case NetDSLPackage.INTEGER_LITERAL__Y:
return y != null;
case NetDSLPackage.INTEGER_LITERAL__VALUE:
return value != VALUE_EDEFAULT;
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
{
if (baseClass == Expression.class)
{
switch (derivedFeatureID)
{
case NetDSLPackage.INTEGER_LITERAL__OP: return NetDSLPackage.EXPRESSION__OP;
default: return -1;
}
}
if (baseClass == assignmentOpExpression.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
if (baseClass == orExpression.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
if (baseClass == andExpression.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
if (baseClass == relationalExpression.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
if (baseClass == additiveExpression.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
if (baseClass == multiplicativeExpression.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
if (baseClass == unaryExpression.class)
{
switch (derivedFeatureID)
{
case NetDSLPackage.INTEGER_LITERAL__EXPR: return NetDSLPackage.UNARY_EXPRESSION__EXPR;
default: return -1;
}
}
if (baseClass == TermExpression.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
if (baseClass == TermLiteral.class)
{
switch (derivedFeatureID)
{
default: return -1;
}
}
return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
{
if (baseClass == Expression.class)
{
switch (baseFeatureID)
{
case NetDSLPackage.EXPRESSION__OP: return NetDSLPackage.INTEGER_LITERAL__OP;
default: return -1;
}
}
if (baseClass == assignmentOpExpression.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
if (baseClass == orExpression.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
if (baseClass == andExpression.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
if (baseClass == relationalExpression.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
if (baseClass == additiveExpression.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
if (baseClass == multiplicativeExpression.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
if (baseClass == unaryExpression.class)
{
switch (baseFeatureID)
{
case NetDSLPackage.UNARY_EXPRESSION__EXPR: return NetDSLPackage.INTEGER_LITERAL__EXPR;
default: return -1;
}
}
if (baseClass == TermExpression.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
if (baseClass == TermLiteral.class)
{
switch (baseFeatureID)
{
default: return -1;
}
}
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString()
{
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (op: ");
result.append(op);
result.append(", value: ");
result.append(value);
result.append(')');
return result.toString();
}
} //IntegerLiteralImpl