The Navigation and Dimension classes have methods for getting descriptor dimensions and their dimension values.
To retrieve descriptor dimension values:
After the application has retrieved the
Navigation
object, retrieve a list of dimensions (aDimensionList
object) that contain descriptors with:Option Description Java Navigation.getDescriptorDimensions()
method.NET Navigation.DescriptorDimensions
propertyThese calls return descriptor dimension values.
An alternative way is to use:
Option Description Java Navigation.getDescriptorDimGroups()
method.NET Navigation.DescriptorDimGroups
propertyThese calls return a list of dimension groups (a
DimGroupList
object) instead of a list of dimensions. Each dimension group then contains a list of one or more dimensions with descriptors.If one of the descriptors is a hierarchical ancestor of another, the MDEX Engine consolidates descriptors into single dimensions. The only exception to this is when a dimension is marked for
multi-select
. When a dimension is marked formulti-select and
ormulti-select or
, the consolidation is not made and each descriptor gets its own dimension object.Once a descriptor dimension has been retrieved, use these calls to extract various selected dimension value information from the dimension:
Option Description Dimension.getDescriptor()
method (Java) andDimension.Descriptor
property (.NET)Retrieve the dimension value that has been selected from this dimension. Dimension.getAncestors()
method (Java) andDimension.Ancestors
property (.NET)Retrieve a list of the ancestors of the descriptor of this dimension. Each member of this list is also a selected dimension value from the same dimension as the descriptor. The distinction between each member of this list and the descriptor is that each ancestor is a hierarchical ancestor to the descriptor by the dimension structure. These ancestors are ordered from parent to child.
Example 40. Examples: retrieving and rendering descriptors
Java example of retrieving descriptors:
Navigation nav = ENEQueryResults.getNavigation(); // Get list of the dimensions with descriptors DimensionList dl = nav.getDescriptorDimensions(); // Loop through the list for (int I=0; I < dl.size(); I++) { // Get a dimension from the list Dimension d = (Dimension)dl.get(I); // Get the descriptor and then its name and ID DimVal desc = d.getDescriptor(); String descName = desc.getName(); long descId = desc.getId(); // Get list of descriptor’s ancestors and their info DimValList ancs = d.getAncestors(); for (int J=0; J < ancs.size(); J++) { DimVal anc = (DimVal)ancs.get(J); String ancName = anc.getName(); long ancId = anc.getId(); } }
.NET example of retrieving descriptors:
Navigation nav = ENEQueryResults.Navigation; // Get list of the dimensions with descriptors DimensionList dl = nav.DescriptorDimensions; // Loop through the list for (int I=0; I < dl.Count; I++) { // Get a dimension from the list Dimension d = (Dimension)dl[I]; // Get the descriptor and then its name and ID DimVal desc = d.Descriptor; string descName = desc.getName(); long descId = desc.Id; // Get list of descriptor’s ancestors and their info DimValList ancs = d.Ancestors; for (int J=0; J < ancs.Count; J++) { DimVal anc = (DimVal)ancs[J]; String ancName = anc.Name; long ancId = anc.Id; } }
Java example of rendering descriptors:
<table> <% Navigation nav = ENEQueryResults.getNavigation(); DimensionList dl = nav.getDescriptorDimensions(); for (int I=0; I < dl.size(); I++) { Dimension d = (Dimension)dl.get(I); %> <tr> <% DimValList ancs = d.getAncestors(); for (int J=0; J < ancs.size(); J++) { DimVal anc = (DimVal)ancs.get(J); %> <td><%= anc.getName() %> <% } DimVal desc = d.getDescriptor(); %> <td><%= desc.getName() %></td></tr> <% } %> </table>
.NET example of rendering descriptors:
<table> <% Navigation nav = ENEQueryResults.Navigation; DimensionList dl = nav.DescriptorDimensions; for (int I=0; I < dl.Count; I++) { Dimension d = (Dimension)dl[I]; %> <tr> <% DimValList ancs = d.Ancestors; for (int J=0; J < ancs.Count; J++) { DimVal anc = (DimVal)ancs[J]; %> <td><%= anc.Name %> <% } DimVal desc = d.Descriptor; %> <td><%= desc.Name %></td></tr> <% } %> </table>