KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > rolap > MemberReader


1 /*
2 // $Id: //open/mondrian/src/main/mondrian/rolap/MemberReader.java#14 $
3 // This software is subject to the terms of the Common Public License
4 // Agreement, available at the following URL:
5 // http://www.opensource.org/licenses/cpl.html.
6 // Copyright (C) 2001-2002 Kana Software, Inc.
7 // Copyright (C) 2001-2006 Julian Hyde and others
8 // All Rights Reserved.
9 // You must accept the terms of that agreement to use this software.
10 //
11 // jhyde, 10 August, 2001
12 */

13
14 package mondrian.rolap;
15 import java.util.List JavaDoc;
16
17 import mondrian.olap.Hierarchy;
18 import mondrian.olap.Evaluator;
19 import mondrian.rolap.TupleReader.MemberBuilder;
20 import mondrian.rolap.sql.TupleConstraint;
21 import mondrian.rolap.sql.MemberChildrenConstraint;
22
23 /**
24  * A <code>MemberReader</code> implements common operations to retrieve members
25  * from a hierarchy.
26  *
27  * <p><code>MemberReader</code> is an extension of {@link MemberSource}, which
28  * implements only the very basic operations. {@link CacheMemberReader} is an
29  * adapter which converts a {@link MemberSource} into a {@link MemberReader}
30  * and does caching too.
31  *
32  * @author jhyde
33  * @since 10 August, 2001
34  * @version $Id: //open/mondrian/src/main/mondrian/rolap/MemberReader.java#14 $
35  */

36 interface MemberReader extends MemberSource {
37     /**
38      * Returns the member <code>n</code> after <code>member</code> in the same
39      * level (or before, if <code>n</code> is negative).
40      * Returns {@link Hierarchy#getNullMember} if we run off the beginning or
41      * end of the level.
42      */

43     RolapMember getLeadMember(RolapMember member, int n);
44
45     /**
46      * Returns all of the members in <code>level</code> whose ordinal lies
47      * between <code>startOrdinal</code> and <code>endOrdinal</code>.
48      *
49      * <p>If this object
50      * {@link MemberSource#setCache supports cache-writeback}, also
51      * writes these members to the cache.
52      *
53      * @return {@link List} of {@link RolapMember}
54      */

55     List JavaDoc<RolapMember> getMembersInLevel(RolapLevel level, int startOrdinal, int endOrdinal);
56
57     /**
58      * Writes all members between <code>startMember</code> and
59      * <code>endMember</code> into <code>list</code>.
60      */

61     void getMemberRange(
62             RolapLevel level,
63             RolapMember startMember,
64             RolapMember endMember,
65             List JavaDoc<RolapMember> list);
66
67     /**
68      * Compares two members according to their order in a prefix ordered
69      * traversal. If <code>siblingsAreEqual</code>, then two members with the
70      * same parent will compare equal.
71      *
72      * @return less than zero if m1 occurs before m2,
73      * greater than zero if m1 occurs after m2,
74      * zero if m1 is equal to m2, or if <code>siblingsAreEqual</code> and
75      * m1 and m2 have the same parent
76      */

77     int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual);
78
79     void getMemberChildren(
80             RolapMember member,
81             List JavaDoc<RolapMember> children,
82             MemberChildrenConstraint constraint);
83
84     void getMemberChildren(
85             List JavaDoc<RolapMember> parentMembers,
86             List JavaDoc<RolapMember> children,
87             MemberChildrenConstraint constraint);
88
89     List JavaDoc<RolapMember> getMembersInLevel(
90             RolapLevel level,
91             int startOrdinal,
92             int endOrdinal,
93             TupleConstraint constraint);
94
95     MemberBuilder getMemberBuilder();
96 }
97
98 // End MemberReader.java
99
Popular Tags