/**
*/
package rba.core.impl;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import rba.core.AllocatedContent;
import rba.core.ContentOperator;
import rba.core.Expression;
import rba.core.ExpressionType;
import rba.core.IsAllocatedTo;
import rba.core.ObjectCompare;
import rba.core.Operator;
import rba.core.RBACoreFactory;
import rba.core.RBACorePackage;
import rba.core.SugarExpression;
import rba.core.SugarExpressionBase;
/**
* An implementation of the model object 'Is Allocated To'.
*
* @generated
*/
public class IsAllocatedToImpl extends ContentOperatorImpl implements IsAllocatedTo {
/**
*
* @generated
*/
protected IsAllocatedToImpl() {
super();
}
/**
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return RBACorePackage.Literals.IS_ALLOCATED_TO;
}
/**
*
* @generated
*/
public String getSymbol() {
return ".isAllocatedTo";
}
/**
*
* @generated
*/
public ExpressionType getUnderlyingType() {
return ExpressionType.BOOLEAN;
}
/**
*
* @generated
*/
public String getExpressionText() {
StringBuilder expressionText = new StringBuilder();
EList expressions = getOperand();
expressionText.append(expressions.size() > 0 ? expressions.get(0).getExpressionText() : "[Invalid_Expression]");
expressionText.append(getSymbol());
expressionText.append("(");
expressionText.append(expressions.size() > 1 ? expressions.get(1).getExpressionText() : "[Invalid_Expression]");
expressionText.append(")");
return expressionText.toString();
}
/**
*
* @generated
*/
public boolean canExpand() {
return true;
}
/**
*
* @generated NOT
*/
public Expression getExpanded() {
ObjectCompare compare = RBACoreFactory.eINSTANCE.createObjectCompare();
AllocatedContent content = RBACoreFactory.eINSTANCE.createAllocatedContent();
content.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
compare.getOperand().add(content);
compare.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
return compare;
}
/**
*
* @generated
*/
@Override
public int eDerivedOperationID(int baseOperationID, Class> baseClass) {
if (baseClass == Expression.class) {
switch (baseOperationID) {
case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
return RBACorePackage.IS_ALLOCATED_TO___GET_UNDERLYING_TYPE;
case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
return RBACorePackage.IS_ALLOCATED_TO___GET_EXPRESSION_TEXT;
default:
return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == Operator.class) {
switch (baseOperationID) {
case RBACorePackage.OPERATOR___GET_SYMBOL:
return RBACorePackage.IS_ALLOCATED_TO___GET_SYMBOL;
default:
return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == ContentOperator.class) {
switch (baseOperationID) {
case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
return RBACorePackage.IS_ALLOCATED_TO___GET_EXPRESSION_TEXT;
default:
return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == SugarExpression.class) {
switch (baseOperationID) {
case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
return RBACorePackage.IS_ALLOCATED_TO___CAN_EXPAND;
case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
return RBACorePackage.IS_ALLOCATED_TO___GET_EXPANDED;
default:
return -1;
}
}
if (baseClass == SugarExpressionBase.class) {
switch (baseOperationID) {
case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
return RBACorePackage.IS_ALLOCATED_TO___CAN_EXPAND;
default:
return -1;
}
}
return super.eDerivedOperationID(baseOperationID, baseClass);
}
/**
*
* @generated
*/
@Override
public Object eInvoke(int operationID, EList> arguments) throws InvocationTargetException {
switch (operationID) {
case RBACorePackage.IS_ALLOCATED_TO___GET_SYMBOL:
return getSymbol();
case RBACorePackage.IS_ALLOCATED_TO___GET_UNDERLYING_TYPE:
return getUnderlyingType();
case RBACorePackage.IS_ALLOCATED_TO___GET_EXPRESSION_TEXT:
return getExpressionText();
case RBACorePackage.IS_ALLOCATED_TO___CAN_EXPAND:
return canExpand();
case RBACorePackage.IS_ALLOCATED_TO___GET_EXPANDED:
return getExpanded();
}
return super.eInvoke(operationID, arguments);
}
} // IsAllocatedToImpl