001 /* 002 // $Id: //open/mondrian/src/main/mondrian/olap/Hierarchy.java#10 $ 003 // This software is subject to the terms of the Common Public License 004 // Agreement, available at the following URL: 005 // http://www.opensource.org/licenses/cpl.html. 006 // Copyright (C) 1999-2002 Kana Software, Inc. 007 // Copyright (C) 2001-2007 Julian Hyde and others 008 // All Rights Reserved. 009 // You must accept the terms of that agreement to use this software. 010 // 011 // jhyde, 2 March, 1999 012 */ 013 014 package mondrian.olap; 015 016 /** 017 * A <code>Hierarchy</code> is a set of members, organized into levels. 018 */ 019 public interface Hierarchy extends OlapElement { 020 /** 021 * Returns the dimension this hierarchy belongs to. 022 */ 023 Dimension getDimension(); 024 /** 025 * Returns the levels in this hierarchy. 026 * 027 * <p>If a hierarchy is subject to access-control, some of the levels may 028 * not be visible; use {@link SchemaReader#getHierarchyLevels} instead. 029 * 030 * @post return != null 031 */ 032 Level[] getLevels(); 033 /** 034 * Returns the default member of this hierarchy. 035 * 036 * <p>If a hierarchy is subject to access-control, the default member may 037 * not be visible, so use {@link SchemaReader#getHierarchyDefaultMember}. 038 * 039 * @post return != null 040 */ 041 Member getDefaultMember(); 042 /** 043 * Returns the "All" member of this hierarchy. 044 * 045 * @post return != null 046 */ 047 Member getAllMember(); 048 /** 049 * Returns a special member representing the "null" value. This never 050 * occurs on an axis, but may occur if functions such as <code>Lead</code>, 051 * <code>NextMember</code> and <code>ParentMember</code> walk off the end 052 * of the hierarchy. 053 * 054 * @post return != null 055 */ 056 Member getNullMember(); 057 058 boolean hasAll(); 059 /** 060 * Creates a member of this hierarchy. If this is the measures hierarchy, a 061 * calculated member is created, and <code>formula</code> must not be null. 062 */ 063 Member createMember(Member parent, Level level, String name, Formula formula); 064 } 065 066 // End Hierarchy.java 067