/* // 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. // Copyright (C) 2008-2010 Julian Hyde // All Rights Reserved. // You must accept the terms of that agreement to use this software. */ package org.olap4j.driver.olap4ld; import org.olap4j.OlapException; import org.olap4j.metadata.Member; import java.util.*; /** * Can read metadata, in particular members. * * @author jhyde * @version $Id: MetadataReader.java 315 2010-05-29 00:56:11Z jhyde $ * @since Jan 14, 2008 */ interface MetadataReader { /** * Looks up a member by its unique name. * * <p>Not part of public olap4j API. * * @param memberUniqueName Unique name of member * @return Member, or null if not found * @throws org.olap4j.OlapException if error occurs */ Olap4ldMember lookupMemberByUniqueName( String memberUniqueName) throws OlapException; /** * Looks up a list of members by their unique name and writes the results * into a map. * * <p>Not part of public olap4j API. * * @param memberUniqueNames List of unique names of member * * @param memberMap Map to populate with members * * @throws org.olap4j.OlapException if error occurs */ void lookupMembersByUniqueName( List<String> memberUniqueNames, Map<String, Olap4ldMember> memberMap) throws OlapException; /** * Looks a member by its unique name and returns members related by * the specified tree-operations. * * <p>Not part of public olap4j API. * * @param memberUniqueName Unique name of member * * @param treeOps Collection of tree operations to travel relative to * given member in order to create list of members * * @param list list to be populated with members related to the given * member, or empty set if the member is not found * * @throws org.olap4j.OlapException if error occurs */ void lookupMemberRelatives( Set<Member.TreeOp> treeOps, String memberUniqueName, List<Olap4ldMember> list) throws OlapException; /** * Looks up members of a given level. * * @param level Level * * @throws org.olap4j.OlapException if error occurs * * @return list of members at in the level */ List<Olap4ldMember> getLevelMembers(Olap4ldLevel level) throws OlapException; } // End MetadataReader.java