/**
*/
package rba.core;
/**
*
* A representation of the model object 'Lambda Expression'.
*
*
*
*
*
*
*
* The following features are supported:
*
*
* - {@link rba.core.LambdaExpression#getContext Context}
* - {@link rba.core.LambdaExpression#getX X}
* - {@link rba.core.LambdaExpression#getBodyText Body Text}
*
*
* @see rba.core.RBACorePackage#getLambdaExpression()
* @model
* @generated
*/
public interface LambdaExpression extends Expression {
/**
* Returns the value of the 'Context' container reference.
* It is bidirectional and its opposite is '{@link rba.core.LambdaContext#getLambda Lambda}'.
*
*
*
*
*
* @return the value of the 'Context' container reference.
* @see #setContext(LambdaContext)
* @see rba.core.RBACorePackage#getLambdaExpression_Context()
* @see rba.core.LambdaContext#getLambda
* @model opposite="lambda" transient="false"
* @generated
*/
LambdaContext getContext();
/**
* Sets the value of the '{@link rba.core.LambdaExpression#getContext Context}' container reference.
*
*
* @param value the new value of the 'Context' container reference.
* @see #getContext()
* @generated
*/
void setContext(LambdaContext value);
/**
* Returns the value of the 'X' containment reference.
*
*
*
*
*
* @return the value of the 'X' containment reference.
* @see #setX(Variable)
* @see rba.core.RBACorePackage#getLambdaExpression_X()
* @model containment="true" required="true"
* @generated
*/
Variable getX();
/**
* Sets the value of the '{@link rba.core.LambdaExpression#getX X}' containment reference.
*
*
* @param value the new value of the 'X' containment reference.
* @see #getX()
* @generated
*/
void setX(Variable value);
/**
* Returns the value of the 'Body Text' containment reference.
*
*
*
*
*
* @return the value of the 'Body Text' containment reference.
* @see #setBodyText(Expression)
* @see rba.core.RBACorePackage#getLambdaExpression_BodyText()
* @model containment="true" required="true"
* @generated
*/
Expression getBodyText();
/**
* Sets the value of the '{@link rba.core.LambdaExpression#getBodyText Body Text}' containment reference.
*
*
* @param value the new value of the 'Body Text' containment reference.
* @see #getBodyText()
* @generated
*/
void setBodyText(Expression value);
/**
*
*
*
* @Override
*
* @model kind="operation"
* annotation="http://www.eclipse.org/emf/2002/GenModel body='StringBuilder expressionText = new StringBuilder();\r\nexpressionText.append(\"{ \");\r\nexpressionText.append(x != null ? x.getName() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" | \");\r\ngetLetStatements().forEach(let -> expressionText.append(let));\r\nexpressionText.append(bodyText != null ? bodyText.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" }\");\r\nreturn expressionText.toString();'"
* @generated
*/
String getExpressionText();
/**
*
*
*
* @Override
*
* @model kind="operation"
* annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.LAMBDA;'"
* @generated
*/
ExpressionType getUnderlyingType();
} // LambdaExpression