001/* 002// This software is subject to the terms of the Eclipse Public License v1.0 003// Agreement, available at the following URL: 004// http://www.eclipse.org/legal/epl-v10.html. 005// You must accept the terms of that agreement to use this software. 006// 007// Copyright (C) 2006-2007 Pentaho 008// All Rights Reserved. 009*/ 010package mondrian.rolap.agg; 011 012import mondrian.rolap.*; 013 014import java.util.List; 015 016/** 017 * Column constraint defined by a member. 018 * 019 * @author jhyde 020 * @since Mar 16, 2006 021 */ 022public class MemberColumnPredicate extends ValueColumnPredicate { 023 private final RolapMember member; 024 025 /** 026 * Creates a MemberColumnPredicate 027 * 028 * @param column Constrained column 029 * @param member Member to constrain column to; must not be null 030 */ 031 public MemberColumnPredicate(RolapStar.Column column, RolapMember member) { 032 super(column, member.getKey()); 033 this.member = member; 034 } 035 036 // for debug 037 public String toString() { 038 return member.getUniqueName(); 039 } 040 041 public List<RolapStar.Column> getConstrainedColumnList() { 042 return super.getConstrainedColumnList(); 043 } 044 045 /** 046 * Returns the <code>Member</code>. 047 * 048 * @return Returns the <code>Member</code>, not null. 049 */ 050 public RolapMember getMember() { 051 return member; 052 } 053 054 public boolean equals(Object other) { 055 if (!(other instanceof MemberColumnPredicate)) { 056 return false; 057 } 058 final MemberColumnPredicate that = (MemberColumnPredicate) other; 059 return member.equals(that.getMember()); 060 } 061 062 public int hashCode() { 063 return member.hashCode(); 064 } 065 066 public void describe(StringBuilder buf) { 067 buf.append(member.getUniqueName()); 068 } 069 070 public StarColumnPredicate cloneWithColumn(RolapStar.Column column) { 071 return new MemberColumnPredicate(column, member); 072 } 073} 074 075// End MemberColumnPredicate.java