Skip to content

Commit

Permalink
MONDRIAN:
Browse files Browse the repository at this point in the history
[git-p4: depot-paths = "//open/mondrian/": change = 3328]
  • Loading branch information
Richard Emberson committed Mar 7, 2005
1 parent e4c6c9b commit 21bff37
Show file tree
Hide file tree
Showing 47 changed files with 1,787 additions and 1,558 deletions.
5 changes: 3 additions & 2 deletions src/main/mondrian/olap/CubeBase.java
Expand Up @@ -44,10 +44,11 @@ public abstract class CubeBase extends OlapElementBase implements Cube {
public static final int MDPROP_USERDEFINED0 = 19;

protected final String name;
protected DimensionBase[] dimensions;
protected Dimension[] dimensions;

protected CubeBase(String name) {
protected CubeBase(String name, Dimension[] dimensions) {
this.name = name;
this.dimensions = dimensions;
}

// implement OlapElement
Expand Down
7 changes: 5 additions & 2 deletions src/main/mondrian/olap/HierarchyBase.java
Expand Up @@ -39,11 +39,14 @@ public abstract class HierarchyBase
protected final String uniqueName;
protected String description;
protected Level[] levels;
protected boolean hasAll;
protected final boolean hasAll;
protected String allMemberName;

protected HierarchyBase(Dimension dimension, String subName) {
protected HierarchyBase(Dimension dimension,
String subName,
boolean hasAll) {
this.dimension = dimension;
this.hasAll = hasAll;
setCaption(dimension.getCaption());

this.subName = subName;
Expand Down
2 changes: 1 addition & 1 deletion src/main/mondrian/olap/LevelBase.java
Expand Up @@ -29,7 +29,7 @@ public abstract class LevelBase
protected String description;
protected final int depth;
protected final LevelType levelType;
protected MemberFormatter memberFormatter = null;
protected MemberFormatter memberFormatter;

protected LevelBase(Hierarchy hierarchy,
String name,
Expand Down
21 changes: 12 additions & 9 deletions src/main/mondrian/rolap/ArrayMemberSource.java
Expand Up @@ -27,12 +27,12 @@
* @since 22 December, 2001
* @version $Id$
**/
abstract class ArrayMemberSource implements MemberSource
{
abstract class ArrayMemberSource implements MemberSource {

protected final RolapHierarchy hierarchy;
protected final RolapMember[] members;
ArrayMemberSource(RolapHierarchy hierarchy, RolapMember[] members)
{

ArrayMemberSource(RolapHierarchy hierarchy, RolapMember[] members) {
this.hierarchy = hierarchy;
this.members = members;
}
Expand All @@ -57,7 +57,8 @@ public void getMemberChildren(RolapMember parentMember, List children) {
public void getMemberChildren(List parentMembers, List children) {
// there are no children
}
public RolapMember lookupMember(String[] uniqueNameParts, boolean failIfNotFound) {
public RolapMember lookupMember(String[] uniqueNameParts,
boolean failIfNotFound) {
String uniqueName = Util.implode(uniqueNameParts);
for (int i = 0; i < members.length; i++) {
RolapMember member = members[i];
Expand All @@ -73,6 +74,7 @@ public RolapMember lookupMember(String[] uniqueNameParts, boolean failIfNotFound
}
}

/*
class HasBoughtDairySource extends ArrayMemberSource
{
public HasBoughtDairySource(RolapHierarchy hierarchy, Properties properties)
Expand All @@ -81,10 +83,10 @@ public HasBoughtDairySource(RolapHierarchy hierarchy, Properties properties)
Util.discard(properties);
}
/**
* Because Java won't allow us to call methods before constructing {@link
* HasBoughtDairyReader}'s base class.
**/
///
//Because Java won't allow us to call methods before constructing {@link
//HasBoughtDairyReader}'s base class.
///
private static class Thunk
{
RolapHierarchy hierarchy;
Expand Down Expand Up @@ -116,5 +118,6 @@ RolapMember[] getMembers()
}
}
}
*/

// End ArrayMemberSource.java
74 changes: 40 additions & 34 deletions src/main/mondrian/rolap/CacheMemberReader.java
Expand Up @@ -30,15 +30,13 @@
* note: CacheMemberReader can not handle ragged hierarchies (HR Tests fail if SmartMemberReader
* is replaced with CacheMemberReader).
*/
class CacheMemberReader implements MemberReader, MemberCache
{
private MemberSource source;
private RolapMember[] members;
class CacheMemberReader implements MemberReader, MemberCache {
private final MemberSource source;
private final RolapMember[] members;
/** Maps a {@link MemberKey} to a {@link RolapMember}. **/
private Map mapKeyToMember;
private final Map mapKeyToMember;

CacheMemberReader(MemberSource source)
{
CacheMemberReader(MemberSource source) {
this.source = source;
if (false) {
// we don't want the reader to write back to our cache
Expand All @@ -52,8 +50,7 @@ class CacheMemberReader implements MemberReader, MemberCache
}

// implement MemberReader
public RolapHierarchy getHierarchy()
{
public RolapHierarchy getHierarchy() {
return source.getHierarchy();
}

Expand All @@ -64,26 +61,22 @@ public boolean setCache(MemberCache cache) {
}

// implement MemberReader
public RolapMember[] getMembers()
{
public RolapMember[] getMembers() {
return members;
}

// implement MemberCache
public Object makeKey(RolapMember parent, Object key)
{
public Object makeKey(RolapMember parent, Object key) {
return new MemberKey(parent, key);
}

// implement MemberCache
public RolapMember getMember(Object key)
{
public RolapMember getMember(Object key) {
return (RolapMember) mapKeyToMember.get(key);
}

// implement MemberCache
public Object putMember(Object key, RolapMember value)
{
public Object putMember(Object key, RolapMember value) {
return mapKeyToMember.put(key, value);
}

Expand All @@ -99,7 +92,8 @@ public boolean hasChildren(RolapMember member) {
return false;
}

public RolapMember lookupMember(String[] uniqueNameParts, boolean failIfNotFound) {
public RolapMember lookupMember(String[] uniqueNameParts,
boolean failIfNotFound) {
return RolapUtil.lookupMember(this, uniqueNameParts, failIfNotFound);
}

Expand All @@ -113,15 +107,17 @@ public List getRootMembers() {
return list;
}

public List getMembersInLevel(
RolapLevel level, int startOrdinal, int endOrdinal) {
public List getMembersInLevel(RolapLevel level,
int startOrdinal,
int endOrdinal) {
List list = new ArrayList();
int levelDepth = level.getDepth();
for (int i = 0; i < members.length; i++) {
RolapMember member = members[i];
if (member.getLevel().getDepth() == levelDepth &&
startOrdinal <= member.getOrdinal() &&
member.getOrdinal() < endOrdinal) {
if ((member.getLevel().getDepth() == levelDepth) &&
(startOrdinal <= member.getOrdinal()) &&
(member.getOrdinal() < endOrdinal)) {

list.add(members[i]);
}
}
Expand Down Expand Up @@ -150,30 +146,34 @@ public RolapMember getLeadMember(RolapMember member, int n) {
if (n >= 0) {
for (int ordinal = member.getOrdinal(); ordinal < members.length;
ordinal++) {
if (members[ordinal].getLevel() == member.getLevel() &&
n-- == 0) {
if ((members[ordinal].getLevel() == member.getLevel()) &&
(n-- == 0)) {

return members[ordinal];
}
}
return (RolapMember) member.getHierarchy().getNullMember();

} else {
for (int ordinal = member.getOrdinal(); ordinal >= 0; ordinal--) {
if (members[ordinal].getLevel() == member.getLevel() &&
n++ == 0) {
if ((members[ordinal].getLevel() == member.getLevel()) &&
(n++ == 0)) {
return members[ordinal];
}
}
return (RolapMember) member.getHierarchy().getNullMember();
}
}

public void getMemberRange(
RolapLevel level, RolapMember startMember, RolapMember endMember,
List list) {
public void getMemberRange(RolapLevel level,
RolapMember startMember,
RolapMember endMember,
List list) {
Util.assertPrecondition(startMember != null, "startMember != null");
Util.assertPrecondition(endMember != null, "endMember != null");
Util.assertPrecondition(startMember.getLevel() == endMember.getLevel(),
"startMember.getLevel() == endMember.getLevel()");

for (int i = startMember.getOrdinal(); i <= endMember.getOrdinal(); i++) {
if (members[i].getLevel() == endMember.getLevel()) {
list.add(members[i]);
Expand All @@ -189,16 +189,22 @@ public int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual) {
if (m1 == m2) {
return 0;
}
if (siblingsAreEqual && m1.getParentMember() == m2.getParentMember()) {
if (siblingsAreEqual &&
(m1.getParentMember() == m2.getParentMember())) {
return 0;
}
Util.assertTrue(members[m1.getOrdinal()] == m1);
Util.assertTrue(members[m2.getOrdinal()] == m2);
return m1.getOrdinal() < m2.getOrdinal() ? -1 : 1;

return (m1.getOrdinal() < m2.getOrdinal()) ? -1 : 1;
}

public void getMemberDescendants(RolapMember member, List result,
RolapLevel level, boolean before, boolean self, boolean after) {
public void getMemberDescendants(RolapMember member,
List result,
RolapLevel level,
boolean before,
boolean self,
boolean after) {
RolapUtil.getMemberDescendants(this, member, level, result, before,
self, after);
}
Expand Down
20 changes: 9 additions & 11 deletions src/main/mondrian/rolap/CellKey.java
Expand Up @@ -19,15 +19,14 @@
* @since 10 August, 2001
* @version $Id$
**/
public class CellKey
{
public class CellKey {
public final int[] ordinals;
public CellKey(int[] ordinals)
{

public CellKey(int[] ordinals) {
this.ordinals = ordinals;
}
public boolean equals(Object o)
{

public boolean equals(Object o) {
if (o instanceof CellKey) {
CellKey other = (CellKey) o;
if (other.ordinals.length != this.ordinals.length) {
Expand All @@ -43,17 +42,16 @@ public boolean equals(Object o)
return false;
}
}
public int hashCode()
{

public int hashCode() {
int h = 0;
for (int i = 0; i < ordinals.length; i++) {
h = (h * 37) ^ ordinals[i];
}
return h;
}
CellKey copy()
{
return new CellKey((int[])ordinals.clone());
CellKey copy() {
return new CellKey((int[]) ordinals.clone());
}
};

Expand Down
3 changes: 1 addition & 2 deletions src/main/mondrian/rolap/CellReader.java
Expand Up @@ -35,8 +35,7 @@
* @since 10 August, 2001
* @version $Id$
**/
interface CellReader
{
interface CellReader {
Object get(Evaluator evaluator);
};

Expand Down
25 changes: 17 additions & 8 deletions src/main/mondrian/rolap/DelegatingMemberReader.java
Expand Up @@ -22,7 +22,7 @@
* @version $Id$
**/
class DelegatingMemberReader implements MemberReader {
protected MemberReader memberReader;
protected final MemberReader memberReader;

DelegatingMemberReader(MemberReader memberReader) {
this.memberReader = memberReader;
Expand All @@ -32,21 +32,29 @@ public RolapMember getLeadMember(RolapMember member, int n) {
return memberReader.getLeadMember(member, n);
}

public List getMembersInLevel(RolapLevel level, int startOrdinal, int endOrdinal) {
public List getMembersInLevel(RolapLevel level,
int startOrdinal,
int endOrdinal) {
return memberReader.getMembersInLevel(level, startOrdinal, endOrdinal);
}

public void getMemberRange(RolapLevel level, RolapMember startMember,
RolapMember endMember, List list) {
public void getMemberRange(RolapLevel level,
RolapMember startMember,
RolapMember endMember,
List list) {
memberReader.getMemberRange(level, startMember, endMember, list);
}

public int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual) {
return memberReader.compare(m1, m2, siblingsAreEqual);
}

public void getMemberDescendants(RolapMember member, List result,
RolapLevel level, boolean before, boolean self, boolean after) {
public void getMemberDescendants(RolapMember member,
List result,
RolapLevel level,
boolean before,
boolean self,
boolean after) {
memberReader.getMemberDescendants(member, result, level, before, self,
after);
}
Expand Down Expand Up @@ -79,9 +87,10 @@ public int getMemberCount() {
return memberReader.getMemberCount();
}

public RolapMember lookupMember(String[] uniqueNameParts, boolean failIfNotFound) {
public RolapMember lookupMember(String[] uniqueNameParts,
boolean failIfNotFound) {
return memberReader.lookupMember(uniqueNameParts, failIfNotFound);
}
}

// End DelegatingMemberReader.java
// End DelegatingMemberReader.java
2 changes: 1 addition & 1 deletion src/main/mondrian/rolap/DynamicSchemaProcessor.java
Expand Up @@ -15,7 +15,7 @@
* A dynamic schema processor is used to dynamically change
* a Mondrian schema at runtime.
*/
public interface DynamicSchemaProcessor{
public interface DynamicSchemaProcessor {

/**
* modify a Mondrian schema
Expand Down

0 comments on commit 21bff37

Please sign in to comment.