Skip to content

Commit

Permalink
MONDRIAN:
Browse files Browse the repository at this point in the history
       RolapHierarchy
           The existing code ignored the defaultMember attribute.

[git-p4: depot-paths = "//open/mondrian/": change = 3693]
  • Loading branch information
Richard Emberson committed Jun 13, 2005
1 parent fea5214 commit da9fac5
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/main/mondrian/rolap/RolapHierarchy.java
Expand Up @@ -42,6 +42,7 @@ class RolapHierarchy extends HierarchyBase {
private String memberReaderClass;
private MondrianDef.Relation relation;
private Member defaultMember;
private String defaultMemberName;
private RolapNullMember nullMember;

/**
Expand Down Expand Up @@ -147,6 +148,7 @@ class RolapHierarchy extends HierarchyBase {
if (!Util.isEmpty(xmlHierarchy.caption)) {
setCaption(xmlHierarchy.caption);
}
defaultMemberName = xmlHierarchy.defaultMember;
}

protected Logger getLogger() {
Expand Down Expand Up @@ -185,6 +187,28 @@ void init(RolapCube cube, MondrianDef.CubeDimension xmlDimension) {
this.memberReader = getRolapSchema().createMemberReader(
sharedHierarchy, this, memberReaderClass);
}
if (defaultMemberName != null) {
String[] uniqueNameParts = Util.explode(defaultMemberName);

// We strip off the parent dimension name if the defaultMemberName
// is the full unique name, [Time].[2004] rather than simply
// [2004].
Dimension dim = getDimension();
if (dim.getName().equals(uniqueNameParts[0])) {
String[] tmp = new String[uniqueNameParts.length-1];
System.arraycopy(uniqueNameParts, 1, tmp, 0,
uniqueNameParts.length-1);
uniqueNameParts = tmp;
}

// Now lookup the name from the hierarchy's members.
defaultMember = memberReader.lookupMember(uniqueNameParts, false);
if (defaultMember == null) {
throw Util.newInternal(
"Can not find Default Member with name \""
+ defaultMemberName + "\"");
}
}
}

RolapLevel newLevel(String name, int flags) {
Expand Down

0 comments on commit da9fac5

Please sign in to comment.