1 13 14 package mondrian.rolap; 15 import mondrian.olap.Util; 16 import mondrian.resource.MondrianResource; 17 18 import java.util.Collections ; 19 import java.util.List ; 20 21 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; } 44 public RolapMember[] getMembers() { 45 return members; 46 } 47 public int getMemberCount() { 48 return members.length; 49 } 50 51 public List <RolapMember> getRootMembers() { 52 return Collections.emptyList(); 53 } 54 55 public void getMemberChildren(RolapMember parentMember, List <RolapMember> children) { 56 } 58 public void getMemberChildren(List <RolapMember> parentMembers, List <RolapMember> children) { 59 } 61 public RolapMember lookupMember(String [] uniqueNameParts, 62 boolean failIfNotFound) { 63 String 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 | Popular Tags |