Package org.qdl_lang.expressions
Class AxisExpression
- java.lang.Object
-
- org.qdl_lang.expressions.ExpressionImpl
-
- org.qdl_lang.expressions.AxisExpression
-
- All Implemented Interfaces:
Serializable
,ExpressionNode
,ExpressionInterface
,HasResultInterface
,Statement
public class AxisExpression extends ExpressionImpl
- 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, AXIS_RESTRICTION_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 AxisExpression()
AxisExpression(int operatorType)
AxisExpression(int operatorType, TokenPosition tokenPosition)
AxisExpression(TokenPosition tokenPosition)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
evaluate(State state)
Long
getAxis()
AxisExpression
getAxisExpression()
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.QDLStem
getStem()
boolean
hasAxis()
boolean
hasAxisExpression()
boolean
hasStem()
boolean
isStar()
ExpressionInterface
makeCopy()
void
setAxis(Long axis)
void
setAxisExpression(AxisExpression axisExpression)
void
setStar(boolean star)
void
setStem(QDLStem stem)
String
toString()
-
Methods inherited from class org.qdl_lang.expressions.ExpressionImpl
addArgument, evalArg, evalLastArg, evaluatedArgs, getAlias, getArgAt, getArgCount, getArguments, getEvaluatedArgs, getLastArg, getOperatorType, getResult, getResultType, getSourceCode, getTokenPosition, hasAlias, hasEvaluatedArgs, hasTokenPosition, isEvaluated, isSizeQuery, setAlias, setArguments, setEvaluated, setEvaluatedArgs, setOperatorType, setResult, setResultType, setSizeQuery, setSourceCode, setTokenPosition
-
-
-
-
Constructor Detail
-
AxisExpression
public AxisExpression()
-
AxisExpression
public AxisExpression(TokenPosition tokenPosition)
-
AxisExpression
public AxisExpression(int operatorType, TokenPosition tokenPosition)
-
AxisExpression
public AxisExpression(int operatorType)
-
-
Method Detail
-
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:
-
hasAxis
public boolean hasAxis()
-
getAxis
public Long getAxis()
-
setAxis
public void setAxis(Long axis)
-
getStem
public QDLStem getStem()
-
setStem
public void setStem(QDLStem stem)
-
hasStem
public boolean hasStem()
-
getAxisExpression
public AxisExpression getAxisExpression()
-
setAxisExpression
public void setAxisExpression(AxisExpression axisExpression)
-
hasAxisExpression
public boolean hasAxisExpression()
-
toString
public String toString()
- Overrides:
toString
in classExpressionImpl
-
isStar
public boolean isStar()
-
setStar
public void setStar(boolean star)
-
-