Package org.qdl_lang.functions
Class DyadicFunctionReferenceNode
- java.lang.Object
- 
- org.qdl_lang.expressions.ExpressionImpl
- 
- org.qdl_lang.functions.DyadicFunctionReferenceNode
 
 
- 
- All Implemented Interfaces:
- Serializable,- Comparable,- ExpressionNode,- FunctionNodeInterface,- FunctionReferenceNodeInterface,- ExpressionInterface,- HasResultInterface,- Statement
 
 public class DyadicFunctionReferenceNode extends ExpressionImpl implements FunctionReferenceNodeInterface, Comparable Created by Jeff Gaynor 
 on 6/10/24 at 12:43 PM- See Also:
- Serialized Form
 
- 
- 
Field Summary- 
Fields inherited from class org.qdl_lang.expressions.ExpressionImplarguments, result, valence
 - 
Fields inherited from interface org.qdl_lang.statements.ExpressionInterfaceALL_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 SummaryConstructors Constructor Description DyadicFunctionReferenceNode()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(Object object)QDLValueevaluate(State state)protected FunctionRecordgetFRByArgCount(State state, int argCount, String functionName)intgetFunctionArgCount()This is the left argument.StringgetFunctionName()FunctionRecordInterfacegetFunctionRecord()FunctionRecordInterfacegetFunctionRecord(int argCount)ModulegetModule()StategetModuleState()intgetNodeType()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.booleanhasFunctionRecord(int argCount)booleanhasModuleState()booleanisAnonymous()ExpressionInterfacemakeCopy()voidsetAnonymous(boolean anonymous)voidsetFunctionName(String functionName)voidsetFunctionRecord(FunctionRecordInterface functionRecord)voidsetModule(Module module)voidsetModuleState(State moduleState)StringtoString()- 
Methods inherited from class org.qdl_lang.expressions.ExpressionImpladdArgument, 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, setResult, setSizeQuery, setSourceCode, setTokenPosition
 
- 
 
- 
- 
- 
Method Detail- 
compareTopublic int compareTo(Object object) - Specified by:
- compareToin interface- Comparable
 
 - 
makeCopypublic ExpressionInterface makeCopy() - Specified by:
- makeCopyin interface- ExpressionInterface
 
 - 
getFunctionArgCountpublic int getFunctionArgCount() This is the left argument. The contract is that the left argument evaluates into an integer (long, really, but java does not accept longs in many places) so this is distinct fromExpressionImpl.getArgCount()which is always 2 since this is a dyad.- Returns:
 
 - 
getNodeTypepublic int getNodeType() Description copied from interface:ExpressionInterfaceQDL 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).- Specified by:
- getNodeTypein interface- ExpressionInterface
- Specified by:
- getNodeTypein interface- FunctionNodeInterface
- Returns:
 
 - 
getFRByArgCountprotected FunctionRecord getFRByArgCount(State state, int argCount, String functionName) 
 - 
getFunctionNamepublic String getFunctionName() - Specified by:
- getFunctionNamein interface- FunctionReferenceNodeInterface
 
 - 
setFunctionNamepublic void setFunctionName(String functionName) - Specified by:
- setFunctionNamein interface- FunctionReferenceNodeInterface
 
 - 
isAnonymouspublic boolean isAnonymous() - Specified by:
- isAnonymousin interface- FunctionReferenceNodeInterface
 
 - 
setAnonymouspublic void setAnonymous(boolean anonymous) - Specified by:
- setAnonymousin interface- FunctionReferenceNodeInterface
 
 - 
getFunctionRecordpublic FunctionRecordInterface getFunctionRecord() 
 - 
setFunctionRecordpublic void setFunctionRecord(FunctionRecordInterface functionRecord) 
 - 
getFunctionRecordpublic FunctionRecordInterface getFunctionRecord(int argCount) - Specified by:
- getFunctionRecordin interface- FunctionReferenceNodeInterface
 
 - 
hasFunctionRecordpublic boolean hasFunctionRecord(int argCount) - Specified by:
- hasFunctionRecordin interface- FunctionReferenceNodeInterface
 
 - 
getModuleStatepublic State getModuleState() - Specified by:
- getModuleStatein interface- FunctionReferenceNodeInterface
 
 - 
setModuleStatepublic void setModuleState(State moduleState) - Specified by:
- setModuleStatein interface- FunctionReferenceNodeInterface
 
 - 
hasModuleStatepublic boolean hasModuleState() - Specified by:
- hasModuleStatein interface- FunctionReferenceNodeInterface
 
 - 
toStringpublic String toString() - Overrides:
- toStringin class- ExpressionImpl
 
 - 
getModulepublic Module getModule() 
 - 
setModulepublic void setModule(Module module) 
 
- 
 
-