/**
*/
package org.eclipse.papyrus.uml.alf.impl;
import java.lang.reflect.InvocationTargetException;
import java.math.BigInteger;
import java.util.Map;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.WrappedException;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
import org.eclipse.emf.ecore.util.EObjectValidator;
import org.eclipse.papyrus.uml.alf.AlfPackage;
import org.eclipse.papyrus.uml.alf.AssignableElement;
import org.eclipse.papyrus.uml.alf.AssignedSource;
import org.eclipse.papyrus.uml.alf.ElementReference;
import org.eclipse.papyrus.uml.alf.Expression;
import org.eclipse.papyrus.uml.alf.IncrementOrDecrementExpression;
import org.eclipse.papyrus.uml.alf.LeftHandSide;
import org.eclipse.papyrus.uml.alf.util.AlfValidator;
/**
*
* An implementation of the model object 'Increment Or Decrement Expression'.
*
*
*
* The following features are implemented:
*
*
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#getAssignment Assignment}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#getOperand Operand}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#getExpression Expression}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#getFeature Feature}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#isIsPrefix Is Prefix}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#isIsFeature Is Feature}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#isIsIndexed Is Indexed}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#isIsDataValueUpdate Is Data Value Update}
* - {@link org.eclipse.papyrus.uml.alf.impl.IncrementOrDecrementExpressionImpl#getOperator Operator}
*
*
* @generated
*/
public class IncrementOrDecrementExpressionImpl extends ExpressionImpl implements IncrementOrDecrementExpression {
/**
*
*
*
* @generated
*/
protected IncrementOrDecrementExpressionImpl() {
super();
}
/**
*
*
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return AlfPackage.eINSTANCE.getIncrementOrDecrementExpression();
}
/**
*
*
*
* @generated
*/
public AssignedSource getAssignment() {
return (AssignedSource) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Assignment(), true);
}
/**
*
*
*
* @generated
*/
public void setAssignment(AssignedSource newAssignment) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Assignment(), newAssignment);
}
/**
*
*
*
* @generated
*/
public LeftHandSide getOperand() {
return (LeftHandSide) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Operand(), true);
}
/**
*
*
*
* @generated
*/
public void setOperand(LeftHandSide newOperand) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Operand(), newOperand);
}
/**
*
*
*
* @generated
*/
public Expression getExpression() {
return (Expression) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Expression(), true);
}
/**
*
*
*
* @generated
*/
public void setExpression(Expression newExpression) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Expression(), newExpression);
}
/**
*
*
*
* @generated
*/
public ElementReference getFeature() {
return (ElementReference) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Feature(), true);
}
/**
*
*
*
* @generated
*/
public void setFeature(ElementReference newFeature) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Feature(), newFeature);
}
/**
*
*
*
* @generated
*/
public boolean isIsPrefix() {
return (Boolean) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsPrefix(), true);
}
/**
*
*
*
* @generated
*/
public void setIsPrefix(boolean newIsPrefix) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsPrefix(), newIsPrefix);
}
/**
*
*
*
* @generated
*/
public boolean isIsFeature() {
return (Boolean) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsFeature(), true);
}
/**
*
*
*
* @generated
*/
public void setIsFeature(boolean newIsFeature) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsFeature(), newIsFeature);
}
/**
*
*
*
* @generated
*/
public boolean isIsIndexed() {
return (Boolean) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsIndexed(), true);
}
/**
*
*
*
* @generated
*/
public void setIsIndexed(boolean newIsIndexed) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsIndexed(), newIsIndexed);
}
/**
*
*
*
* @generated
*/
public boolean isIsDataValueUpdate() {
return (Boolean) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsDataValueUpdate(), true);
}
/**
*
*
*
* @generated
*/
public void setIsDataValueUpdate(boolean newIsDataValueUpdate) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_IsDataValueUpdate(), newIsDataValueUpdate);
}
/**
*
*
*
* @generated
*/
public String getOperator() {
return (String) eGet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Operator(), true);
}
/**
*
*
*
* @generated
*/
public void setOperator(String newOperator) {
eSet(AlfPackage.eINSTANCE.getIncrementOrDecrementExpression_Operator(), newOperator);
}
/**
* The cached invocation delegate for the '{@link #type() Type}' operation.
*
*
*
* @see #type()
* @generated
* @ordered
*/
protected static final EOperation.Internal.InvocationDelegate TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal) AlfPackage.eINSTANCE.getIncrementOrDecrementExpression__Type()).getInvocationDelegate();
/**
*
*
*
* @generated
*/
public ElementReference type() {
try {
return (ElementReference) TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null);
} catch (InvocationTargetException ite) {
throw new WrappedException(ite);
}
}
/**
* The cached invocation delegate for the '{@link #lower() Lower}' operation.
*
*
*
* @see #lower()
* @generated
* @ordered
*/
protected static final EOperation.Internal.InvocationDelegate LOWER__EINVOCATION_DELEGATE = ((EOperation.Internal) AlfPackage.eINSTANCE.getIncrementOrDecrementExpression__Lower()).getInvocationDelegate();
/**
*
*
*
* @generated
*/
public BigInteger lower() {
try {
return (BigInteger) LOWER__EINVOCATION_DELEGATE.dynamicInvoke(this, null);
} catch (InvocationTargetException ite) {
throw new WrappedException(ite);
}
}
/**
* The cached invocation delegate for the '{@link #upper() Upper}' operation.
*
*
*
* @see #upper()
* @generated
* @ordered
*/
protected static final EOperation.Internal.InvocationDelegate UPPER__EINVOCATION_DELEGATE = ((EOperation.Internal) AlfPackage.eINSTANCE.getIncrementOrDecrementExpression__Upper()).getInvocationDelegate();
/**
*
*
*
* @generated
*/
public BigInteger upper() {
try {
return (BigInteger) UPPER__EINVOCATION_DELEGATE.dynamicInvoke(this, null);
} catch (InvocationTargetException ite) {
throw new WrappedException(ite);
}
}
/**
*
*
*
* @generated
*/
public boolean incrementOrDecrementExpressionAssignmentDerivation(DiagnosticChain diagnostics, Map