***  This class is subject to change.  ***

com.sas.iquery.metadata.expr.olap
Class MemberFilterExpression

com.sas.iquery.metadata.expr.olap.MemberFilterExpression
All Implemented Interfaces:
Base, BusinessModelResourceReferencer, ModelItem, UsabilityInterface, ExpressionInterface, PropertyChangeListenee, java.beans.PropertyChangeListener, java.lang.Cloneable, java.util.EventListener
Direct Known Subclasses:
BusinessGroupMemberFilterExpression

public class MemberFilterExpression

This class does handle the basis of its modeling equivalently to the MemberFilter Step.

Example:

This is of the format {WhatToFilter} in ({Member Name 1}..{Member Name n}).

In 9.2, "filter expression" conditions on cube dimensions will affect the rolled-up values. In effect, for the user it will be as if the cube was being created with only the members that are permitted in the MemberNames list. This functionality is defined in the server. The filter definition is applied to cube in one specific OLAP Isession before any MDX query has been applied. It is applied to the server by a generated DDL, not through the MDX. *

To insure consistency with other features (such as totaling, navigation, and selection). The filter expression will perform the following.

1) identify the appropriate descendents to navigate to (after the application of the filter). Descendents are not located for filter that use the "Not equal" operator. This places the filter into a exclusive condition rather than an inclusive condition.

Example EQ:

USA.NC.
USA.NC.CARY
USA.NC.CHAPEL HILL
USA.SC.SAVANNAH

Note: In this case, you want to only see, the above items and nothing more. We can not see SAVANNAH unless we have the parent of SC.

Example Not EQ:
USA.NC.
USA.NC.CARY
USA.NC.CHAPEL HILL
USA.SC.SAVANNAH

Note: In this case, you do not want to see the above items but everthing else. If you apply USA.NC, you will automatically not see CARY and CHAPEL HILL as well as DURHAM and RALIEGH. You will still see SC, but not SAVANNAH. So, you do not to add any parents.

2) identify the root level of the member selected in the filter.

EXAMPLE:
USA.NC
USA.SC

Root: STATE

3) identify when orphan child member occur in the member filter selection.

4) fix orphan child member that may have been selected (it will fill in the gaps between anscestor member and children).

Note: The above process will require a query to the server. This means a performance hit. However, for non-prompt selection, this performance hit will occur at design time, not run time. For prompt selection, there is no other alternative but to perform the query to server at run-time. We do not know the values until run-time.

See Also:
DataItemMemberFilter

Field Summary
static java.lang.String EVENT_MEMBER_NAMES_CHANGED
          Indication that list of members names being used in filter has changed.
 
Fields inherited from class com.sas.iquery.metadata.expr.olap.BaseFilterExpression
EVENT_WHAT_TO_COMPARE_CHANGED
 
Fields inherited from class com.sas.iquery.metadata.expr.ConditionalExpression
EVENT_NEGATION_CHANGED
 
Fields inherited from interface com.sas.iquery.metadata.business.Base
EVENT_OBJECT_DEFINITION_CHANGED
 
Fields inherited from interface com.sas.iquery.metadata.business.ModelItem
EVENT_OBJECT_PROPERTY_CHANGED
 
Constructor Summary
MemberFilterExpression()
           
 
Method Summary
 boolean containsOrphans()
          Indicate that orphaned members exist.
 java.lang.String getMemberLevelRoot()
          Get the highest member level in the member that has been selected.
 java.util.List getMemberNames()
          Gets the names of the members to use for filtering.
 void setMemberNames(java.util.List values)
          Sets the names of the members to use for filtering.
 
Methods inherited from class com.sas.iquery.metadata.expr.olap.BaseFilterExpression
getDisplayedText, getLevels, getWhatToCompare, setWhatToCompare
 
Methods inherited from class com.sas.iquery.metadata.expr.ConditionalExpression
getExpressionType, isNegated, setIsNegated
 
Methods inherited from interface com.sas.iquery.metadata.business.BusinessModelResourceReferencer
getResources
 
Methods inherited from interface com.sas.iquery.metadata.PropertyChangeListenee
addListener, getListeners, removeListener
 
Methods inherited from interface com.sas.iquery.metadata.business.UsabilityInterface
getReasonsUnusable, isUsableInQuery
 

Field Detail

***  This field is subject to change.  ***

EVENT_MEMBER_NAMES_CHANGED

public static final java.lang.String EVENT_MEMBER_NAMES_CHANGED
Indication that list of members names being used in filter has changed.

See Also:
Constant Field Values
Constructor Detail

MemberFilterExpression

public MemberFilterExpression()
Method Detail
***  This method is subject to change.  ***

setMemberNames

public void setMemberNames(java.util.List values)
Sets the names of the members to use for filtering.

Parameters:
values - The names of the members to be used for filtering

***  This method is subject to change.  ***

getMemberLevelRoot

public java.lang.String getMemberLevelRoot()
Get the highest member level in the member that has been selected. Example: memberNames containsd [CARS].[FORD].[GREEN], [CARS].[FORD].[RED], [CARS].[TOYOTA].[YELLOW], therefore the root would be [CARS].[COLOR]

Returns:
memberLevelRoot

***  This method is subject to change.  ***

containsOrphans

public boolean containsOrphans()
Indicate that orphaned members exist.

Returns:

***  This method is subject to change.  ***

getMemberNames

public java.util.List getMemberNames()
Gets the names of the members to use for filtering.

Returns:
List of name of members used in filtering.

***  This class is subject to change.  ***




Copyright © 2009 SAS Institute Inc. All Rights Reserved.