/**
*/
package rba.view.impl;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import rba.core.AndOperator;
import rba.core.ContentOperator;
import rba.core.Expression;
import rba.core.ExpressionType;
import rba.core.ObjectCompare;
import rba.core.Operator;
import rba.core.RBACoreFactory;
import rba.core.RBACorePackage;
import rba.core.SugarExpression;
import rba.core.SugarExpressionBase;
import rba.view.DisplayingContent;
import rba.view.IsDisplayed;
import rba.view.IsDisplayedOn;
import rba.view.RBAViewFactory;
import rba.view.RBAViewPackage;
import rba.view.ViewContentOperator;
/**
* An implementation of the model object 'Is Displayed On'.
*
* @generated
*/
public class IsDisplayedOnImpl extends ViewContentOperatorImpl implements IsDisplayedOn {
/**
*
* @generated
*/
protected IsDisplayedOnImpl() {
super();
}
/**
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return RBAViewPackage.Literals.IS_DISPLAYED_ON;
}
/**
*
* @generated
*/
public String getSymbol() {
return ".isDisplayedOn";
}
/**
*
* @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() {
AndOperator AND = RBACoreFactory.eINSTANCE.createAndOperator();
IsDisplayed isDisplayed = RBAViewFactory.eINSTANCE.createIsDisplayed();
ObjectCompare equal = RBACoreFactory.eINSTANCE.createObjectCompare();
DisplayingContent dispContent = RBAViewFactory.eINSTANCE.createDisplayingContent();
isDisplayed.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
dispContent.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(1)));
equal.getOperand().add(dispContent);
equal.getOperand().add(org.eclipse.emf.ecore.util.EcoreUtil.copy(getOperand().get(0)));
AND.getOperand().add(isDisplayed);
AND.getOperand().add(equal);
return AND;
}
/**
*
* @generated
*/
@Override
public int eDerivedOperationID(int baseOperationID, Class> baseClass) {
if (baseClass == Expression.class) {
switch (baseOperationID) {
case RBACorePackage.EXPRESSION___GET_UNDERLYING_TYPE:
return RBAViewPackage.IS_DISPLAYED_ON___GET_UNDERLYING_TYPE;
case RBACorePackage.EXPRESSION___GET_EXPRESSION_TEXT:
return RBAViewPackage.IS_DISPLAYED_ON___GET_EXPRESSION_TEXT;
default:
return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == Operator.class) {
switch (baseOperationID) {
case RBACorePackage.OPERATOR___GET_SYMBOL:
return RBAViewPackage.IS_DISPLAYED_ON___GET_SYMBOL;
default:
return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == ContentOperator.class) {
switch (baseOperationID) {
case RBACorePackage.CONTENT_OPERATOR___GET_EXPRESSION_TEXT:
return RBAViewPackage.IS_DISPLAYED_ON___GET_EXPRESSION_TEXT;
default:
return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == ViewContentOperator.class) {
switch (baseOperationID) {
case RBAViewPackage.VIEW_CONTENT_OPERATOR___GET_UNDERLYING_TYPE:
return RBAViewPackage.IS_DISPLAYED_ON___GET_UNDERLYING_TYPE;
default:
return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == SugarExpression.class) {
switch (baseOperationID) {
case RBACorePackage.SUGAR_EXPRESSION___CAN_EXPAND:
return RBAViewPackage.IS_DISPLAYED_ON___CAN_EXPAND;
case RBACorePackage.SUGAR_EXPRESSION___GET_EXPANDED:
return RBAViewPackage.IS_DISPLAYED_ON___GET_EXPANDED;
default:
return -1;
}
}
if (baseClass == SugarExpressionBase.class) {
switch (baseOperationID) {
case RBACorePackage.SUGAR_EXPRESSION_BASE___CAN_EXPAND:
return RBAViewPackage.IS_DISPLAYED_ON___CAN_EXPAND;
default:
return -1;
}
}
return super.eDerivedOperationID(baseOperationID, baseClass);
}
/**
*
* @generated
*/
@Override
public Object eInvoke(int operationID, EList> arguments) throws InvocationTargetException {
switch (operationID) {
case RBAViewPackage.IS_DISPLAYED_ON___GET_SYMBOL:
return getSymbol();
case RBAViewPackage.IS_DISPLAYED_ON___GET_UNDERLYING_TYPE:
return getUnderlyingType();
case RBAViewPackage.IS_DISPLAYED_ON___GET_EXPRESSION_TEXT:
return getExpressionText();
case RBAViewPackage.IS_DISPLAYED_ON___CAN_EXPAND:
return canExpand();
case RBAViewPackage.IS_DISPLAYED_ON___GET_EXPANDED:
return getExpanded();
}
return super.eInvoke(operationID, arguments);
}
} // IsDisplayedOnImpl