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