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
ConstructorsConstructorDescriptionTernaryExpression(ExpressionNode condition, ExpressionNode trueExpr, ExpressionNode falseExpr) -
Method Summary
Modifier and TypeMethodDescriptionprotected io.micronaut.sourcegen.model.TypeDefResolves expression AST node type.io.micronaut.sourcegen.model.ExpressionDefGenerates bytecode for this AST node.protected booleanMethods 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:ExpressionNodeGenerates bytecode for this AST node.- Specified by:
generateExpressionin 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:ExpressionNodeResolves expression AST node type.- Overrides:
doResolveTypein classExpressionNode- Parameters:
ctx- expression compilation context- Returns:
- resolved type
-