Skip to main content

%DeepSee.Query.node

Class %DeepSee.Query.node Extends (%RegisteredObject, %XML.Adaptor) [ Abstract, System = 3 ]

Base class for DeepSee RunTime objects.

Parameters

XMLIGNORENULL

Parameter XMLIGNORENULL = 1;

XMLIGNOREINVALIDATTRIBUTE

Parameter XMLIGNOREINVALIDATTRIBUTE = 0;

NAMESPACE

Parameter NAMESPACE = "http://www.intersystems.com/deepsee/query";

Properties

parent

Relationship parent As %DeepSee.Query.group(XMLPROJECTION = "none") [ Cardinality = one, Inverse = children ];

Parent of this node.
The type of the parent depends on context.

value

Property value As %DeepSee.Datatype.string(MAXLEN = 32000, XMLPROJECTION = "attribute");

Value of this node. This is used by nodes that provide values.

%PreProcessed

Property %PreProcessed As %Boolean(XMLPROJECTION = "none");

Used to note if this instance of this node has run its %PreProcess method

Methods

%PrintNode

Method %PrintNode(pLevel As %Integer = 0)

Diagnostic. Print value of this node to the console.

%IsEnabled

Method %IsEnabled(pCube As %String = "", Output pStatus As %Status = {$$$OK}, Output pReason As %String = "") As %Boolean

Test this node to make sure all data references are currently marked enabled in the cube.

%GetType

Method %GetType() As %String

Return the type of this node.
The type can be one of the $$$dst macros.
This is implemented by subclasses.

%GetValue

Method %GetValue() As %String

Return the current value of this node.
This is called when a literal value is needed during query processing. This is implemented by subclasses.

%ToString

Method %ToString(Output pSC As %Status) As %String

Convert this node to its text representation.

%GetMemberProvider

Method %GetMemberProvider() As %DeepSee.Query.member

Return the member provider object associated with this node, if any.

%PreProcess

Method %PreProcess(pIsSlicer As %Boolean = 0) As %Status

Execute the pre-processing logic for this node. pIsSlicer is true if this node is part of the slicer (WHERE) clause.

%ProcessAxes

Method %ProcessAxes(pCube As %String, pKey As %String, ByRef pNodeNo As %Integer, Output pNewNodeNo As %Integer, pParent As %Integer, pVisible As %Boolean = 1) As %Status [ Internal ]

Execute and build the axes output for this node.
pCube and pKey identify the current query.
pNodeNo is used to track the next available node number in the axis graph.
pNewNodeNo is the (top-most) node created by this call.
pParent is the parent node to insert into.
If pVisible is false, then force children to not be visible.

%ProcessFilter

Method %ProcessFilter(ByRef pFilterTree As %List, pCube As %String, ByRef pNodeNo As %Integer, Output pNewNodeNo As %Integer, pParent As %Integer) As %Status [ Internal ]

Process this node within the context of the filter section of a query
pFilterTree is tree containing processed results.
pCube is the cube name.
pNodeNo is used to track the next available node number in the axis graph.
pNewNodeNo is the (top-most) node created by this call.
pParent is the parent node to insert into.

%CopyNode

ClassMethod %CopyNode(pCubeIndex As %String, pKey As %String, ByRef pNodeNo As %Integer, pTargetNode As %Integer, pSourceNode As %Integer, pHideParent As %Boolean = 0, pWrapType As %String = "", pWrapDepth As %Integer = {+$G(%SetOpDepth(pKey))}) As %Status [ Internal ]

Make a copy of node pSourceNode and add it to target node pTargetNode.

%DeleteNode

ClassMethod %DeleteNode(pCubeIndex As %String, pKey As %String, pAxisNode As %Integer, pNodeNo As %Integer) As %Status [ Internal ]

Delete the specified node and its children.

%HideNode

ClassMethod %HideNode(pCubeIndex As %String, pKey As %String, pAxisNode As %Integer, pNodeNo As %Integer, pShow As %Boolean = 0) As %Status [ Internal ]

Hide (or display if pShow is true) the specified node and its children by clearing their visible flags.

%ReduceNode

ClassMethod %ReduceNode(pCubeIndex As %String, pKey As %String, pNodeNo As %Integer) As %Status [ Internal ]

Reduce the given node within the node tree. This means replacing set(set) with set.