Package org.openl.rules.lang.xls.binding
Class AMethodBasedNode
- java.lang.Object
-
- org.openl.binding.impl.ABoundNode
-
- org.openl.rules.lang.xls.binding.ATableBoundNode
-
- org.openl.rules.lang.xls.binding.AMethodBasedNode
-
- All Implemented Interfaces:
IBoundNode,IMemberBoundNode
- Direct Known Subclasses:
AlgorithmBoundNode,ColumnMatchBoundNode,DecisionTableBoundNode,MethodTableBoundNode,SpreadsheetBoundNode
public abstract class AMethodBasedNode extends ATableBoundNode implements IMemberBoundNode
-
-
Field Summary
-
Fields inherited from class org.openl.binding.impl.ABoundNode
children, syntaxNode
-
Fields inherited from interface org.openl.binding.IBoundNode
EMPTY, EMPTY_RESULT
-
-
Constructor Summary
Constructors Constructor Description AMethodBasedNode(TableSyntaxNode methodNode, OpenL openl, IOpenMethodHeader header, ModuleOpenClass module)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddTo(ModuleOpenClass openClass)protected voidaddTypeError(IBindingContext bindingContext, IOpenClass type, ILocation location, IOpenSourceCodeModule syntaxNode)protected abstract ExecutableRulesMethodcreateMethodShell()protected ObjectevaluateRuntime(IRuntimeEnv env)voidfinalizeBind(IBindingContext bindingContext)protected IOpenMethodgetAliasMethod(ExecutableRulesMethod originalMethod)IOpenMethodHeadergetHeader()ExecutableRulesMethodgetMethod()ModuleOpenClassgetModule()OpenLgetOpenl()intgetSignatureStartIndex()IOpenClassgetType()protected booleanhasAliasName()Is method has an "id" property that will be used to generate additional method with name specified in property suitable for direct call of rule avoiding the method dispatching mechanism.voidremoveDebugInformation(IBindingContext cxt)-
Methods inherited from class org.openl.rules.lang.xls.binding.ATableBoundNode
getTableSyntaxNode
-
Methods inherited from class org.openl.binding.impl.ABoundNode
assign, evaluate, getChildren, getSyntaxNode, getTargetNode, isLvalue, isStaticTarget, setSyntaxNode, updateAssignFieldDependency, updateDependency
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openl.binding.IBoundNode
getDims
-
-
-
-
Constructor Detail
-
AMethodBasedNode
public AMethodBasedNode(TableSyntaxNode methodNode, OpenL openl, IOpenMethodHeader header, ModuleOpenClass module)
-
-
Method Detail
-
getOpenl
public OpenL getOpenl()
-
getHeader
public IOpenMethodHeader getHeader()
-
getMethod
public ExecutableRulesMethod getMethod()
-
getModule
public ModuleOpenClass getModule()
-
evaluateRuntime
protected Object evaluateRuntime(IRuntimeEnv env)
- Specified by:
evaluateRuntimein classABoundNode
-
getType
public IOpenClass getType()
- Specified by:
getTypein interfaceIBoundNode- Overrides:
getTypein classABoundNode
-
addTo
public void addTo(ModuleOpenClass openClass)
- Specified by:
addToin interfaceIMemberBoundNode
-
hasAliasName
protected boolean hasAliasName()
Is method has an "id" property that will be used to generate additional method with name specified in property suitable for direct call of rule avoiding the method dispatching mechanism.- Returns:
trueif "id" property is specified.
-
getAliasMethod
protected IOpenMethod getAliasMethod(ExecutableRulesMethod originalMethod)
-
createMethodShell
protected abstract ExecutableRulesMethod createMethodShell()
-
removeDebugInformation
public void removeDebugInformation(IBindingContext cxt) throws Exception
- Specified by:
removeDebugInformationin interfaceIMemberBoundNode- Throws:
Exception
-
finalizeBind
public void finalizeBind(IBindingContext bindingContext) throws Exception
- Specified by:
finalizeBindin interfaceIMemberBoundNode- Throws:
Exception
-
addTypeError
protected void addTypeError(IBindingContext bindingContext, IOpenClass type, ILocation location, IOpenSourceCodeModule syntaxNode)
-
getSignatureStartIndex
public int getSignatureStartIndex()
-
-