KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > rolap > TupleReader


1 /*
2 // This software is subject to the terms of the Common Public License
3 // Agreement, available at the following URL:
4 // http://www.opensource.org/licenses/cpl.html.
5 // Copyright (C) 2004-2005 TONBELLER AG
6 // All Rights Reserved.
7 // You must accept the terms of that agreement to use this software.
8 */

9 package mondrian.rolap;
10
11 import java.sql.Connection JavaDoc;
12 import java.sql.ResultSet JavaDoc;
13 import java.sql.SQLException JavaDoc;
14 import java.util.List JavaDoc;
15
16 import javax.sql.DataSource JavaDoc;
17
18 /**
19  * Describes the public methods of {@link mondrian.rolap.SqlTupleReader}.
20  *
21  * @author av
22  * @since Nov 21, 2005
23  * @version $Id: //open/mondrian/src/main/mondrian/rolap/TupleReader.java#9 $
24  */

25 public interface TupleReader {
26     /**
27      * Factory to create new members for a
28      * hierarchy from SQL result.
29      *
30      * @author av
31      * @since Nov 11, 2005
32      */

33     public interface MemberBuilder {
34
35         /**
36          * Returns the <code>MemberCache</code> to look up members before
37          * creating them.
38          */

39         MemberCache getMemberCache();
40
41         /**
42          * Creates a new member (together with its properties).
43          * @see SqlMemberSource#makeMember(RolapMember, RolapLevel, Object, Object, boolean, ResultSet, Object, int)
44          */

45         RolapMember makeMember(RolapMember parentMember, RolapLevel childLevel,
46                 Object JavaDoc value, Object JavaDoc captionValue, boolean parentChild,
47                 ResultSet JavaDoc resultSet, Object JavaDoc key, int column) throws SQLException JavaDoc;
48     }
49
50     /**
51      * Adds a hierarchy to retrieve members from.
52      *
53      * @param level level that the members correspond to
54      * @param memberBuilder used to build new members for this level
55      * @param srcMembers if set, array of enumerated members that make up
56      * this level
57      */

58     void addLevelMembers(
59         RolapLevel level, MemberBuilder memberBuilder,
60         RolapMember[] srcMembers);
61
62     /**
63      * Performs the read.
64      *
65      * @return a list of RolapMember[]
66      */

67     List JavaDoc<RolapMember[]> readTuples(
68         DataSource JavaDoc dataSource,
69         List JavaDoc<List JavaDoc<RolapMember>> partialResult,
70         List JavaDoc<List JavaDoc<RolapMember>> newPartialResult);
71
72     /**
73      * Performs the read.
74      *
75      * @param dataSource source for reading tuples
76      * @param partialResult partially cached result that should be used
77      * instead of executing sql query
78      * @param newPartialResult if non-null, return the result of the read;
79      * note that this is a subset of the full return list
80
81      * @return a list of RolapMember
82      */

83     List JavaDoc<RolapMember> readMembers(
84         DataSource JavaDoc dataSource,
85         List JavaDoc<List JavaDoc<RolapMember>> partialResult,
86         List JavaDoc<List JavaDoc<RolapMember>> newPartialResult);
87
88     /**
89      * Returns an object that uniquely identifies the Result that this
90      * {@link TupleReader} would return. Clients may use this as a key for
91      * caching the result.
92      */

93     Object JavaDoc getCacheKey();
94
95 }
96
97 // End TupleReader.java
98
Popular Tags