Class JoinExpression
- java.lang.Object
-
- net.ssehub.easy.instantiation.core.model.expressions.Expression
-
- net.ssehub.easy.instantiation.core.model.buildlangModel.JoinExpression
-
public class JoinExpression extends Expression
Realizes a VIL join, typically over the variability model configuration and / or a project's artifact model.- Author:
- Holger Eichelberger
-
-
Field Summary
Fields Modifier and Type Field Description private Expressionconditionprivate JoinVariableDeclaration[]joinVariablesprivate TypeDescriptor<?>typeprivate JoinVariableDeclaration[]visibleVariables
-
Constructor Summary
Constructors Constructor Description JoinExpression(JoinVariableDeclaration[] joinVariables, Expression condition)Creates a new join expression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectaccept(IExpressionVisitor visitor)Visits the expression.ExpressiongetCondition()Returns the join condition.JoinVariableDeclarationgetVariable(int index)Returns the specified join variable.intgetVariablesCount()Returns the number of join variables.JoinVariableDeclarationgetVisibleVariable(int index)Returns the specified visible join variable.intgetVisibleVariablesCount()Returns the number of visible join variables.TypeDescriptor<?>inferType()Infers the type of this expression including the type of the contained sub-expressions.-
Methods inherited from class net.ssehub.easy.instantiation.core.model.expressions.Expression
getFormattingHint, replaceEmptyLine
-
-
-
-
Field Detail
-
joinVariables
private JoinVariableDeclaration[] joinVariables
-
visibleVariables
private JoinVariableDeclaration[] visibleVariables
-
condition
private Expression condition
-
type
private TypeDescriptor<?> type
-
-
Constructor Detail
-
JoinExpression
public JoinExpression(JoinVariableDeclaration[] joinVariables, Expression condition) throws VilException
Creates a new join expression.- Parameters:
joinVariables- the join variables (must not be null and must contain at least two variables although a higher number might be not supported)condition- the join condition, may be null- Throws:
VilException- in case that structural or semantic constraints are not satisfied
-
-
Method Detail
-
getVariablesCount
public int getVariablesCount()
Returns the number of join variables.- Returns:
- the number of join variables
-
getVariable
public JoinVariableDeclaration getVariable(int index)
Returns the specified join variable.- Parameters:
index- the 0-based index denoting the variable to be returned- Returns:
- the specified join variable
- Throws:
java.lang.IndexOutOfBoundsException- in case thatindex < 0 || index >=getVariablesCount()
-
getVisibleVariablesCount
public int getVisibleVariablesCount()
Returns the number of visible join variables.- Returns:
- the number of visible join variables
-
getVisibleVariable
public JoinVariableDeclaration getVisibleVariable(int index)
Returns the specified visible join variable.- Parameters:
index- the 0-based index denoting the variable to be returned- Returns:
- the specified visible join variable
- Throws:
java.lang.IndexOutOfBoundsException- in case thatindex < 0 || index >=getVisibleVariablesCount()
-
getCondition
public Expression getCondition()
Returns the join condition.- Returns:
- the join condition (may be empty)
-
inferType
public TypeDescriptor<?> inferType() throws VilException
Description copied from class:ExpressionInfers the type of this expression including the type of the contained sub-expressions.- Specified by:
inferTypein classExpression- Returns:
- the type of this expression
- Throws:
VilException- in case that inferring the type fails
-
accept
public java.lang.Object accept(IExpressionVisitor visitor) throws VilException
Description copied from class:ExpressionVisits the expression.- Specified by:
acceptin classExpression- Parameters:
visitor- the visitor- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
-