/**
*/
package rba.core;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
/**
*
* A representation of the model object 'Expression'.
*
*
*
*
*
*
*
* The following features are supported:
*
*
* - {@link rba.core.Expression#getType Type}
* - {@link rba.core.Expression#getExpression Expression}
* - {@link rba.core.Expression#getLetStatements Let Statements}
*
*
* @see rba.core.RBACorePackage#getExpression()
* @model abstract="true"
* @generated
*/
public interface Expression extends EObject {
/**
* Returns the value of the 'Type' attribute.
* The literals are from the enumeration {@link rba.core.ExpressionType}.
*
*
*
*
*
* @return the value of the 'Type' attribute.
* @see rba.core.ExpressionType
* @see #isSetType()
* @see rba.core.RBACorePackage#getExpression_Type()
* @model unsettable="true" changeable="false" volatile="true" derived="true"
* @generated
*/
ExpressionType getType();
/**
* Returns whether the value of the '{@link rba.core.Expression#getType Type}' attribute is set.
*
*
* @return whether the value of the 'Type' attribute is set.
* @see #getType()
* @generated
*/
boolean isSetType();
/**
* Returns the value of the 'Expression' attribute.
*
*
*
*
*
* @return the value of the 'Expression' attribute.
* @see #isSetExpression()
* @see #unsetExpression()
* @see #setExpression(String)
* @see rba.core.RBACorePackage#getExpression_Expression()
* @model unsettable="true" volatile="true" derived="true"
* @generated
*/
String getExpression();
/**
* Sets the value of the '{@link rba.core.Expression#getExpression Expression}' attribute.
*
*
* @param value the new value of the 'Expression' attribute.
* @see #isSetExpression()
* @see #unsetExpression()
* @see #getExpression()
* @generated
*/
void setExpression(String value);
/**
* Unsets the value of the '{@link rba.core.Expression#getExpression Expression}' attribute.
*
*
* @see #isSetExpression()
* @see #getExpression()
* @see #setExpression(String)
* @generated
*/
void unsetExpression();
/**
* Returns whether the value of the '{@link rba.core.Expression#getExpression Expression}' attribute is set.
*
*
* @return whether the value of the 'Expression' attribute is set.
* @see #unsetExpression()
* @see #getExpression()
* @see #setExpression(String)
* @generated
*/
boolean isSetExpression();
/**
* Returns the value of the 'Let Statements' containment reference list.
* The list contents are of type {@link rba.core.LetStatement}.
*
*
* If the meaning of the 'Let Statements' containment reference list isn't clear,
* there really should be more of a description here...
*
*
* @return the value of the 'Let Statements' containment reference list.
* @see rba.core.RBACorePackage#getExpression_LetStatements()
* @model containment="true"
* @generated
*/
EList getLetStatements();
/**
*
*
*
*
*
* @model kind="operation"
* @generated
*/
ExpressionType getUnderlyingType();
/**
*
*
*
*
*
* @model kind="operation"
* @generated
*/
String getExpressionText();
} // Expression