%DeepSee.Query.memberSpec
Class %DeepSee.Query.memberSpec Extends group [ System = 3 ]
This class defines a member specification within a DeepSee query.
A member specification defines a specific member from a dimension such as "[Product]", "[Product].[Name]", or "[Location}.[Boston]".
A set of members may be grouped within a single tuple or a single member may exist stand-alone.
Every memberSpec has a corresponding member object that implements any operations needed to be run against the member, such as getting a list of dimension members for a given member.
Properties
spec
Property spec As %DeepSee.Datatype.string(MAXLEN = 32000, XMLPROJECTION = "attribute");
Specification string for this member. This is text from the query.
%member
Property %member As %DeepSee.Query.member(XMLPROJECTION = "none");
Member object that provides the member API for this member. This is created during the pre-processing phase.
%resolvedSpec
Property %resolvedSpec As %String(XMLPROJECTION = "none") [ Internal, MultiDimensional ];
This array holds our member spec *after* it has been resolved.
%resolvedQuoted
Property %resolvedQuoted As %String(XMLPROJECTION = "none") [ Internal, MultiDimensional ];
This array holds a list of which items in the resolved list are quoted.
%memberKeys
Property %memberKeys As %String(XMLPROJECTION = "none") [ Internal, MultiDimensional ];
Resolved member keys, if any.
Methods
%ResolveValue
Method %ResolveValue() As %Status [ Internal ]
Break our spec into it constituent parts.
If the spec contains named parameters, resolve them.
We do this as soon as we are first asked for our value and then we hold onto the resolved value.
%ToString
Method %ToString(Output pSC As %Status) As %String
Convert this node to its text representation.
%GetType
Method %GetType() As %String
Return type of this node.
%GetMemberProvider
Method %GetMemberProvider() As %DeepSee.Query.member
Return the member provider object associated with this node.
%PreProcess
Method %PreProcess(pIsSlicer As %Boolean = 0) As %Status
Execute the pre-processing logic for this node.
%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 tuple.
%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 the filter output for this tuple
%SpecToMember
Method %SpecToMember(ByRef pSpec, ByRef pQuoted, ByRef pMemberKey, Output pMember As %DeepSee.Query.member) As %Status [ Internal ]
Parse the given member spec and create a member API object from it.
A member spec is of the form "A.B.C"; it is passed via the array pSpec: pSpec(1)=A, etc.
The array pQuoted indicates whether a part of the spec is a quoted identifier (and thus cannot be a function).
The array pMemberKey indicates whether a part of the spec is member key (e.g., &2007).
On return pMember contains the member provider object that can be used to process the member.
We assume that if the spec contained a function it was already removed before this point.
%ConstructMemberSpec
ClassMethod %ConstructMemberSpec(pSpec As %String, Output pMemberSpec As %DeepSee.Query.memberSpec) As %Status [ Internal ]
Given a member spec, create a memberSpec object that can be used to access members.
%GetMemberDisplayValues
Method %GetMemberDisplayValues(pCubeName As %String = "", Output pLevelName = "", Output pMemberName = "") As %Status [ Internal ]
Retrieve the display names for the level and member of a memberSpec object. This is used for converting a logical node in a query object to values suitable for use in the user interface.
%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 referenced by the spec is enabled in this cube.