Package edu.uiuc.ncsa.qdl.expressions
Class AltIfExpressionNode
- java.lang.Object
-
- edu.uiuc.ncsa.qdl.expressions.ExpressionImpl
-
- edu.uiuc.ncsa.qdl.expressions.AltIfExpressionNode
-
- All Implemented Interfaces:
ExpressionNode
,ExpressionInterface
,HasResultInterface
,Statement
,Serializable
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 edu.uiuc.ncsa.qdl.expressions.ExpressionImpl
arguments, result, valence
-
Fields inherited from interface edu.uiuc.ncsa.qdl.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 edu.uiuc.ncsa.qdl.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:
-
-