Class TernaryExpression
java.lang.Object
io.micronaut.expressions.parser.ast.ExpressionNode
io.micronaut.expressions.parser.ast.conditional.TernaryExpression
- Direct Known Subclasses:
ElvisOperator
Expression AST node for ternary expressions.
- Since:
- 4.0.0
- Author:
- Sergey Gavrilov
-
Field Summary
Fields inherited from class io.micronaut.expressions.parser.ast.ExpressionNode
classElement, nodeType
-
Constructor Summary
ConstructorDescriptionTernaryExpression
(ExpressionNode condition, ExpressionNode trueExpr, ExpressionNode falseExpr) -
Method Summary
Modifier and TypeMethodDescriptionprotected io.micronaut.sourcegen.model.TypeDef
Resolves expression AST node type.io.micronaut.sourcegen.model.ExpressionDef
Generates bytecode for this AST node.protected boolean
Methods inherited from class io.micronaut.expressions.parser.ast.ExpressionNode
compile, doResolveClassElement, doResolveClassElement, resolveClassElement, resolveClassElement, resolveType, resolveType
-
Constructor Details
-
TernaryExpression
public TernaryExpression(ExpressionNode condition, ExpressionNode trueExpr, ExpressionNode falseExpr)
-
-
Method Details
-
generateExpression
public io.micronaut.sourcegen.model.ExpressionDef generateExpression(ExpressionCompilationContext ctx) Description copied from class:ExpressionNode
Generates bytecode for this AST node.- Specified by:
generateExpression
in classExpressionNode
- Parameters:
ctx
- expression compilation context- Returns:
- The expression definition
-
shouldCoerceConditionToBoolean
protected boolean shouldCoerceConditionToBoolean()- Returns:
- Whether the condition should be coerced to a boolean type.
-
doResolveType
protected io.micronaut.sourcegen.model.TypeDef doResolveType(@NonNull @NonNull ExpressionVisitorContext ctx) Description copied from class:ExpressionNode
Resolves expression AST node type.- Overrides:
doResolveType
in classExpressionNode
- Parameters:
ctx
- expression compilation context- Returns:
- resolved type
-