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