Package org.qdl_lang.expressions
Class AltIfExpressionNode
- java.lang.Object
-
- org.qdl_lang.expressions.ExpressionImpl
-
- org.qdl_lang.expressions.AltIfExpressionNode
-
- All Implemented Interfaces:
Serializable
,ExpressionNode
,ExpressionInterface
,HasResultInterface
,Statement
public class AltIfExpressionNode extends ExpressionImpl
Created by Jeff Gaynor
on 5/27/21 at 5:13 PM- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.qdl_lang.expressions.ExpressionImpl
arguments, result, valence
-
Fields inherited from interface org.qdl_lang.statements.ExpressionInterface
ALL_INDICES_NODE, ALT_IF_NODE, ASSIGNMENT_NODE, CLOSED_SLICE_NODE, COMPARISON_DYAD_NODE, CONSTANT_NODE, DYAD_NODE, DYADIC_FUNCTION_REFERENCE_NODE, EXPRESSION_STEM_NODE, EXPRESSION_STEM2_NODE, FUNCTION_REFERENCE_NODE, LAMBDA_DEFINITION_NODE, LIST_NODE, MODULE_NODE, MONAD_NODE, NILAD_NODE, OPEN_SLICE_NODE, PARENTHESIZED_NODE, PARSE_EXPRESSION_BLOCK_NODE, PARSE_STATEMENT_BLOCK_NODE, POLYAD_NODE, QDL_NULL_NODE, SELECT_NODE, SET_NODE, STEM_ENTRY_NODE, STEM_EXTRACTION_NODE, STEM_NODE, UNKNOWN_NODE, VARIABLE_NODE
-
-
Constructor Summary
Constructors Constructor Description AltIfExpressionNode()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
evaluate(State state)
ArrayList<ExpressionInterface>
getArguments()
ExpressionInterface
getELSE()
ExpressionInterface
getIF()
int
getNodeType()
QDL is not strongly typed but Java is, so each node type should have a unique integer and conditionals should use that, not the instanceof operator.ExpressionInterface
getTHEN()
ExpressionInterface
makeCopy()
void
setELSE(ExpressionInterface x)
void
setIF(ExpressionInterface x)
void
setTHEN(ExpressionInterface x)
-
Methods inherited from class org.qdl_lang.expressions.ExpressionImpl
evalArg, evalLastArg, evaluatedArgs, getAlias, getArgAt, getArgCount, getEvaluatedArgs, getLastArg, getOperatorType, getResult, getResultType, getSourceCode, getTokenPosition, hasAlias, hasEvaluatedArgs, hasTokenPosition, isEvaluated, isSizeQuery, setAlias, setArguments, setEvaluated, setEvaluatedArgs, setOperatorType, setResult, setResultType, setSizeQuery, setSourceCode, setTokenPosition, toString
-
-
-
-
Method Detail
-
getIF
public ExpressionInterface getIF()
-
setIF
public void setIF(ExpressionInterface x)
-
getTHEN
public ExpressionInterface getTHEN()
-
setTHEN
public void setTHEN(ExpressionInterface x)
-
getELSE
public ExpressionInterface getELSE()
-
setELSE
public void setELSE(ExpressionInterface x)
-
getArguments
public ArrayList<ExpressionInterface> getArguments()
- Specified by:
getArguments
in interfaceExpressionNode
- Overrides:
getArguments
in classExpressionImpl
-
makeCopy
public ExpressionInterface makeCopy()
-
getNodeType
public int getNodeType()
Description copied from interface:ExpressionInterface
QDL is not strongly typed but Java is, so each node type should have a unique integer and conditionals should use that, not the instanceof operator. This allows for efficient programming with switch statements rather than a bevy of conditionals (potentially each of which gets done even if the correct case has been handled).- Returns:
-
-