001/*
002// This software is subject to the terms of the Eclipse Public License v1.0
003// Agreement, available at the following URL:
004// http://www.eclipse.org/legal/epl-v10.html.
005// You must accept the terms of that agreement to use this software.
006//
007// Copyright (C) 2007-2012 Pentaho
008// All Rights Reserved.
009*/
010package mondrian.olap4j;
011
012import mondrian.olap.OlapElement;
013
014import org.olap4j.impl.Named;
015import org.olap4j.mdx.ParseTreeNode;
016import org.olap4j.metadata.Cube;
017import org.olap4j.metadata.NamedSet;
018
019/**
020 * Implementation of {@link org.olap4j.metadata.NamedSet}
021 * for the Mondrian OLAP engine.
022 *
023 * @author jhyde
024 * @since Nov 12, 2007
025 */
026class MondrianOlap4jNamedSet
027    extends MondrianOlap4jMetadataElement
028    implements NamedSet, Named
029{
030    private final MondrianOlap4jCube olap4jCube;
031    private mondrian.olap.NamedSet namedSet;
032
033    MondrianOlap4jNamedSet(
034        MondrianOlap4jCube olap4jCube,
035        mondrian.olap.NamedSet namedSet)
036    {
037        this.olap4jCube = olap4jCube;
038        this.namedSet = namedSet;
039    }
040
041    public Cube getCube() {
042        return olap4jCube;
043    }
044
045    public ParseTreeNode getExpression() {
046        final MondrianOlap4jConnection olap4jConnection =
047            olap4jCube.olap4jSchema.olap4jCatalog.olap4jDatabaseMetaData
048                .olap4jConnection;
049        return olap4jConnection.toOlap4j(namedSet.getExp());
050    }
051
052    public String getName() {
053        return namedSet.getName();
054    }
055
056    public String getUniqueName() {
057        return namedSet.getUniqueName();
058    }
059
060    public String getCaption() {
061        return namedSet.getLocalized(
062            OlapElement.LocalizedProperty.CAPTION,
063            olap4jCube.olap4jSchema.getLocale());
064    }
065
066    public String getDescription() {
067        return namedSet.getLocalized(
068            OlapElement.LocalizedProperty.DESCRIPTION,
069            olap4jCube.olap4jSchema.getLocale());
070    }
071
072    public boolean isVisible() {
073        return namedSet.isVisible();
074    }
075
076    protected OlapElement getOlapElement() {
077        return namedSet;
078    }
079}
080
081// End MondrianOlap4jNamedSet.java