[Mondrian] Level of abstraction(mondrian.olap vs mondrian.rolap)

Anton Nikitin cybernelly at gmail.com
Mon Jul 9 11:21:40 EDT 2007


Dear Mondrian Team,
Julian,

we are building an implementation of Mondrian interfaces different from
Rolap one. It means that we intentionally don't use classes from
"mondrian.rolap" package. It seems that framework should allow this without
any problem. But actually I can see usages of mondrian.rolap classes in
several places where (IMHO) only base interfaces should be used (for example
- in mondrian.olap.Query). And it seems that the number of such places grows
from version to version.

Is it possible to eliminate (or at least minimize) such points? We are
planning at some point to use both ROLAP and non-ROLAP implementation and
more strict abstractions are really needed to fulfill this task.

Some thoughts:

1) Some methods of subclasses could be added to interfaces (to eliminate,
for example, casting like (RolapMember)member in base classes). To my mind
it should be done with all Rolap features which are used outside
Mondrian.rolap package.

2) Some classes could be splitted into base-derived pair (for example
mondrian.olap.Query).

3) Some base techniques could be moved from mondrian.rolap to mondrian.olap.

I can provide more information about problematic places and possible
solutions if needed.

Any thoughts?

Anton









More information about the Mondrian mailing list