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) 2003-2005 Julian Hyde 008// Copyright (C) 2005-2012 Pentaho 009// All Rights Reserved. 010*/ 011package mondrian.rolap; 012 013import mondrian.olap.Access; 014import mondrian.olap.Id; 015import mondrian.olap.Member; 016import mondrian.rolap.TupleReader.MemberBuilder; 017import mondrian.rolap.sql.MemberChildrenConstraint; 018import mondrian.rolap.sql.TupleConstraint; 019 020import java.util.List; 021import java.util.Map; 022 023/** 024 * A <code>DelegatingMemberReader</code> is a {@link MemberReader} which 025 * redirects all method calls to an underlying {@link MemberReader}. 026 * 027 * @author jhyde 028 * @since Feb 26, 2003 029 */ 030class DelegatingMemberReader implements MemberReader { 031 protected final MemberReader memberReader; 032 033 DelegatingMemberReader(MemberReader memberReader) { 034 this.memberReader = memberReader; 035 } 036 037 public RolapMember substitute(RolapMember member) { 038 return memberReader.substitute(member); 039 } 040 041 public RolapMember desubstitute(RolapMember member) { 042 return memberReader.desubstitute(member); 043 } 044 045 public RolapMember getMemberByKey( 046 RolapLevel level, List<Comparable> keyValues) 047 { 048 return memberReader.getMemberByKey(level, keyValues); 049 } 050 051 public RolapMember getLeadMember(RolapMember member, int n) { 052 return memberReader.getLeadMember(member, n); 053 } 054 055 public List<RolapMember> getMembersInLevel( 056 RolapLevel level) 057 { 058 return memberReader.getMembersInLevel(level); 059 } 060 061 public void getMemberRange( 062 RolapLevel level, 063 RolapMember startMember, 064 RolapMember endMember, 065 List<RolapMember> list) 066 { 067 memberReader.getMemberRange(level, startMember, endMember, list); 068 } 069 070 public int compare( 071 RolapMember m1, 072 RolapMember m2, 073 boolean siblingsAreEqual) 074 { 075 return memberReader.compare(m1, m2, siblingsAreEqual); 076 } 077 078 public RolapHierarchy getHierarchy() { 079 return memberReader.getHierarchy(); 080 } 081 082 public boolean setCache(MemberCache cache) { 083 return memberReader.setCache(cache); 084 } 085 086 public List<RolapMember> getMembers() { 087 return memberReader.getMembers(); 088 } 089 090 public List<RolapMember> getRootMembers() { 091 return memberReader.getRootMembers(); 092 } 093 094 public void getMemberChildren( 095 RolapMember parentMember, 096 List<RolapMember> children) 097 { 098 getMemberChildren(parentMember, children, null); 099 } 100 101 public Map<? extends Member, Access> getMemberChildren( 102 RolapMember parentMember, 103 List<RolapMember> children, 104 MemberChildrenConstraint constraint) 105 { 106 return memberReader.getMemberChildren( 107 parentMember, children, constraint); 108 } 109 110 public void getMemberChildren( 111 List<RolapMember> parentMembers, 112 List<RolapMember> children) 113 { 114 memberReader.getMemberChildren( 115 parentMembers, children); 116 } 117 118 public Map<? extends Member, Access> getMemberChildren( 119 List<RolapMember> parentMembers, 120 List<RolapMember> children, 121 MemberChildrenConstraint constraint) 122 { 123 return memberReader.getMemberChildren( 124 parentMembers, children, constraint); 125 } 126 127 public int getMemberCount() { 128 return memberReader.getMemberCount(); 129 } 130 131 public RolapMember lookupMember( 132 List<Id.Segment> uniqueNameParts, 133 boolean failIfNotFound) 134 { 135 return memberReader.lookupMember(uniqueNameParts, failIfNotFound); 136 } 137 138 public List<RolapMember> getMembersInLevel( 139 RolapLevel level, TupleConstraint constraint) 140 { 141 return memberReader.getMembersInLevel( 142 level, constraint); 143 } 144 145 public int getLevelMemberCount(RolapLevel level) { 146 return memberReader.getLevelMemberCount(level); 147 } 148 149 public MemberBuilder getMemberBuilder() { 150 return memberReader.getMemberBuilder(); 151 } 152 153 public RolapMember getDefaultMember() { 154 return memberReader.getDefaultMember(); 155 } 156 157 public RolapMember getMemberParent(RolapMember member) { 158 return memberReader.getMemberParent(member); 159 } 160} 161 162// End DelegatingMemberReader.java