/*
// This software is subject to the terms of the Eclipse Public License v1.0
// Agreement, available at the following URL:
// http://www.eclipse.org/legal/epl-v10.html.
// You must accept the terms of that agreement to use this software.
//
// Copyright (C) 2003-2005 Julian Hyde
// Copyright (C) 2004-2005 TONBELLER AG
// Copyright (C) 2005-2015 Pentaho
// All Rights Reserved.
*/
package mondrian.olap;
import mondrian.calc.Calc;
import mondrian.rolap.RolapSchema;
import mondrian.rolap.RolapUtil;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
/**
* <code>DelegatingSchemaReader</code> implements {@link SchemaReader} by
* delegating all methods to an underlying {@link SchemaReader}.
*
* <p>It is a convenient base class if you want to override just a few of
* {@link SchemaReader}'s methods.</p>
*
* @author jhyde
* @since Feb 26, 2003
*/
public abstract class DelegatingSchemaReader implements SchemaReader {
protected final SchemaReader schemaReader;
/**
* Creates a DelegatingSchemaReader.
*
* @param schemaReader Parent reader to delegate unhandled calls to
*/
protected DelegatingSchemaReader(SchemaReader schemaReader) {
this.schemaReader = schemaReader;
}
public RolapSchema getSchema() {
return schemaReader.getSchema();
}
public Role getRole() {
return schemaReader.getRole();
}
public Cube getCube() {
return schemaReader.getCube();
}
public List<Dimension> getCubeDimensions(Cube cube) {
return schemaReader.getCubeDimensions(cube);
}
public List<Hierarchy> getDimensionHierarchies(Dimension dimension) {
return schemaReader.getDimensionHierarchies(dimension);
}
public List<Member> getHierarchyRootMembers(Hierarchy hierarchy) {
return schemaReader.getHierarchyRootMembers(hierarchy);
}
public Member getMemberParent(Member member) {
return schemaReader.getMemberParent(member);
}
public Member substitute(Member member) {
return schemaReader.substitute(member);
}
public List<Member> getMemberChildren(Member member) {
return schemaReader.getMemberChildren(member);
}
public List<Member> getMemberChildren(List<Member> members) {
return schemaReader.getMemberChildren(members);
}
public void getParentChildContributingChildren(
Member dataMember, Hierarchy hierarchy, List<Member> list)
{
schemaReader.getParentChildContributingChildren(
dataMember, hierarchy, list);
}
public int getMemberDepth(Member member) {
return schemaReader.getMemberDepth(member);
}
public final Member getMemberByUniqueName(
List<Id.Segment> uniqueNameParts,
boolean failIfNotFound)
{
return getMemberByUniqueName(
uniqueNameParts, failIfNotFound, MatchType.EXACT);
}
public Member getMemberByUniqueName(
List<Id.Segment> uniqueNameParts,
boolean failIfNotFound,
MatchType matchType)
{
return schemaReader.getMemberByUniqueName(
uniqueNameParts, failIfNotFound, matchType);
}
public final OlapElement lookupCompound(
OlapElement parent, List<Id.Segment> names,
boolean failIfNotFound, int category)
{
return lookupCompound(
parent, names, failIfNotFound, category, MatchType.EXACT);
}
public final OlapElement lookupCompound(
OlapElement parent,
List<Id.Segment> names,
boolean failIfNotFound,
int category,
MatchType matchType)
{
if (MondrianProperties.instance().SsasCompatibleNaming.get()) {
return new NameResolver().resolve(
parent,
Util.toOlap4j(names),
failIfNotFound,
category,
matchType,
getNamespaces());
}
return lookupCompoundInternal(
parent,
names,
failIfNotFound,
category,
matchType);
}
public List<NameResolver.Namespace> getNamespaces() {
return schemaReader.getNamespaces();
}
public OlapElement lookupCompoundInternal(
OlapElement parent, List<Id.Segment> names,
boolean failIfNotFound, int category, MatchType matchType)
{
return schemaReader.lookupCompound(
parent, names, failIfNotFound, category, matchType);
}
public Member getCalculatedMember(List<Id.Segment> nameParts) {
return schemaReader.getCalculatedMember(nameParts);
}
public NamedSet getNamedSet(List<Id.Segment> nameParts) {
return schemaReader.getNamedSet(nameParts);
}
public void getMemberRange(
Level level,
Member startMember,
Member endMember,
List<Member> list)
{
schemaReader.getMemberRange(level, startMember, endMember, list);
}
public Member getLeadMember(Member member, int n) {
return schemaReader.getLeadMember(member, n);
}
public int compareMembersHierarchically(Member m1, Member m2) {
return schemaReader.compareMembersHierarchically(m1, m2);
}
public OlapElement getElementChild(OlapElement parent, Id.Segment name) {
return getElementChild(parent, name, MatchType.EXACT);
}
public OlapElement getElementChild(
OlapElement parent, Id.Segment name, MatchType matchType)
{
return schemaReader.getElementChild(parent, name, matchType);
}
public List<Member> getLevelMembers(
Level level, boolean includeCalculated)
{
return schemaReader.getLevelMembers(level, includeCalculated);
}
public List<Level> getHierarchyLevels(Hierarchy hierarchy) {
return schemaReader.getHierarchyLevels(hierarchy);
}
public Member getHierarchyDefaultMember(Hierarchy hierarchy) {
return schemaReader.getHierarchyDefaultMember(hierarchy);
}
public boolean isDrillable(Member member) {
return schemaReader.isDrillable(member);
}
public boolean isVisible(Member member) {
return schemaReader.isVisible(member);
}
public Cube[] getCubes() {
return schemaReader.getCubes();
}
public List<Member> getCalculatedMembers(Hierarchy hierarchy) {
return schemaReader.getCalculatedMembers(hierarchy);
}
public List<Member> getCalculatedMembers(Level level) {
return schemaReader.getCalculatedMembers(level);
}
public List<Member> getCalculatedMembers() {
return schemaReader.getCalculatedMembers();
}
public int getChildrenCountFromCache(Member member) {
return schemaReader.getChildrenCountFromCache(member);
}
public int getLevelCardinality(
Level level, boolean approximate, boolean materialize)
{
return schemaReader.getLevelCardinality(
level, approximate, materialize);
}
public List<Member> getLevelMembers(Level level, Evaluator context) {
return schemaReader.getLevelMembers(level, context);
}
public List<Member> getMemberChildren(Member member, Evaluator context) {
return schemaReader.getMemberChildren(member, context);
}
public List<Member> getMemberChildren(
List<Member> members, Evaluator context)
{
return schemaReader.getMemberChildren(members, context);
}
public void getMemberAncestors(Member member, List<Member> ancestorList) {
schemaReader.getMemberAncestors(member, ancestorList);
}
public Member lookupMemberChildByName(
Member member, Id.Segment memberName, MatchType matchType)
{
return schemaReader.lookupMemberChildByName(
member, memberName, matchType);
}
public List<Member> lookupMemberChildrenByNames(
Member parent, List<Id.NameSegment> childNames, MatchType matchType)
{
return schemaReader.lookupMemberChildrenByNames(
parent, childNames, matchType);
}
public NativeEvaluator getNativeSetEvaluator(
FunDef fun, Exp[] args, Evaluator evaluator, Calc calc)
{
return schemaReader.getNativeSetEvaluator(fun, args, evaluator, calc);
}
public Parameter getParameter(String name) {
return schemaReader.getParameter(name);
}
public DataSource getDataSource() {
return schemaReader.getDataSource();
}
public SchemaReader withoutAccessControl() {
return schemaReader.withoutAccessControl();
}
public SchemaReader withLocus() {
return RolapUtil.locusSchemaReader(
schemaReader.getSchema().getInternalConnection(),
this);
}
public Map<? extends Member, Access> getMemberChildrenWithDetails(
Member member,
Evaluator evaluator)
{
return schemaReader.getMemberChildrenWithDetails(member, evaluator);
}
}
// End DelegatingSchemaReader.java