KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > rolap > ArrayMemberSource


1 /*
2 // $Id: //open/mondrian/src/main/mondrian/rolap/ArrayMemberSource.java#16 $
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, 22 December, 2001
12 */

13
14 package mondrian.rolap;
15 import mondrian.olap.Util;
16 import mondrian.resource.MondrianResource;
17
18 import java.util.Collections JavaDoc;
19 import java.util.List JavaDoc;
20
21 /**
22  * <code>ArrayMemberSource</code> implements a flat, static hierarchy. There is
23  * no root member, and all members are siblings.
24  *
25  * @author jhyde
26  * @since 22 December, 2001
27  * @version $Id: //open/mondrian/src/main/mondrian/rolap/ArrayMemberSource.java#16 $
28  */

29 abstract class ArrayMemberSource implements MemberSource {
30
31     protected final RolapHierarchy hierarchy;
32     protected final RolapMember[] members;
33
34     ArrayMemberSource(RolapHierarchy hierarchy, RolapMember[] members) {
35         this.hierarchy = hierarchy;
36         this.members = members;
37     }
38     public RolapHierarchy getHierarchy() {
39         return hierarchy;
40     }
41     public boolean setCache(MemberCache cache) {
42         return false; // we do not support cache writeback
43
}
44     public RolapMember[] getMembers() {
45         return members;
46     }
47     public int getMemberCount() {
48         return members.length;
49     }
50
51     public List JavaDoc<RolapMember> getRootMembers() {
52         return Collections.emptyList();
53     }
54
55     public void getMemberChildren(RolapMember parentMember, List JavaDoc<RolapMember> children) {
56         // there are no children
57
}
58     public void getMemberChildren(List JavaDoc<RolapMember> parentMembers, List JavaDoc<RolapMember> children) {
59         // there are no children
60
}
61     public RolapMember lookupMember(String JavaDoc[] uniqueNameParts,
62                                     boolean failIfNotFound) {
63         String JavaDoc uniqueName = Util.implode(uniqueNameParts);
64         for (RolapMember member : members) {
65             if (member.getUniqueName().equals(uniqueName)) {
66                 return member;
67             }
68         }
69         if (failIfNotFound) {
70             throw MondrianResource.instance().MdxCantFindMember.ex(uniqueName);
71         } else {
72             return null;
73         }
74     }
75 }
76
77 // End ArrayMemberSource.java
78
Popular Tags