Class MemberExtractingVisitor

java.lang.Object
mondrian.mdx.MdxVisitorImpl
mondrian.olap.fun.MemberExtractingVisitor
All Implemented Interfaces:
MdxVisitor

public class MemberExtractingVisitor extends MdxVisitorImpl
Visitor which collects any non-measure base members encountered while traversing an expression.

This Visitor is used by the native set classes as well as the crossjoin optimizer (CrossjoinFunDef.nonEmptyList) to identify members within an expression which may conflict with members used as a constraint.

If the boolean mapToAllMember is true, then any occurrences of a Dimension/Hierarchy/Level will result in the corresponding [All] member being added to the collection. Likewise if a specific member is visited, the [All] member of it's corresponding hierarchy will be added.

The mapToAllMember behavior will be used for any subexpression under one of the functions in the blacklist collection below.