summaryrefslogtreecommitdiffstats
path: root/rba.model.core/src/rba/core/LambdaExpression.java
blob: f8c3df359cadd9f8cf70707f0be4a86dda2afdf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/**
 */
package rba.core;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Lambda Expression</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * 
 * <!-- end-model-doc -->
 *
 * <p>
 * The following features are supported:
 * </p>
 * <ul>
 *   <li>{@link rba.core.LambdaExpression#getContext <em>Context</em>}</li>
 *   <li>{@link rba.core.LambdaExpression#getX <em>X</em>}</li>
 *   <li>{@link rba.core.LambdaExpression#getBodyText <em>Body Text</em>}</li>
 * </ul>
 *
 * @see rba.core.RBACorePackage#getLambdaExpression()
 * @model
 * @generated
 */
public interface LambdaExpression extends Expression {
	/**
	 * Returns the value of the '<em><b>Context</b></em>' container reference.
	 * It is bidirectional and its opposite is '{@link rba.core.LambdaContext#getLambda <em>Lambda</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Context</em>' 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 <em>Context</em>}' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Context</em>' container reference.
	 * @see #getContext()
	 * @generated
	 */
	void setContext(LambdaContext value);

	/**
	 * Returns the value of the '<em><b>X</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>X</em>' 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 <em>X</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>X</em>' containment reference.
	 * @see #getX()
	 * @generated
	 */
	void setX(Variable value);

	/**
	 * Returns the value of the '<em><b>Body Text</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Body Text</em>' 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 <em>Body Text</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Body Text</em>' containment reference.
	 * @see #getBodyText()
	 * @generated
	 */
	void setBodyText(Expression value);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * @Override
	 * <!-- end-model-doc -->
	 * @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 -&gt; expressionText.append(let));\r\nexpressionText.append(bodyText != null ? bodyText.getExpressionText() : \"[Invalid_Expression]\");\r\nexpressionText.append(\" }\");\r\nreturn expressionText.toString();'"
	 * @generated
	 */
	String getExpressionText();

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * @Override
	 * <!-- end-model-doc -->
	 * @model kind="operation"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='return ExpressionType.LAMBDA;'"
	 * @generated
	 */
	ExpressionType getUnderlyingType();

} // LambdaExpression