001/*
002// $Id: CubeType.java 482 2012-01-05 23:27:27Z jhyde $
003//
004// Licensed to Julian Hyde under one or more contributor license
005// agreements. See the NOTICE file distributed with this work for
006// additional information regarding copyright ownership.
007//
008// Julian Hyde licenses this file to you under the Apache License,
009// Version 2.0 (the "License"); you may not use this file except in
010// compliance with the License. You may obtain a copy of the License at:
011//
012// http://www.apache.org/licenses/LICENSE-2.0
013//
014// Unless required by applicable law or agreed to in writing, software
015// distributed under the License is distributed on an "AS IS" BASIS,
016// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017// See the License for the specific language governing permissions and
018// limitations under the License.
019*/
020package org.olap4j.type;
021
022import org.olap4j.metadata.*;
023
024/**
025 * The type of an expression which represents a Cube or Virtual Cube.
026 *
027 * @author jhyde
028 * @since Feb 17, 2005
029 * @version $Id: CubeType.java 482 2012-01-05 23:27:27Z jhyde $
030 */
031public class CubeType implements Type {
032    private final Cube cube;
033
034    /**
035     * Creates a type representing a cube.
036     *
037     * @param cube Cube
038     */
039    public CubeType(Cube cube) {
040        this.cube = cube;
041    }
042
043    /**
044     * Returns the cube.
045     *
046     * @return the cube
047     */
048    public Cube getCube() {
049        return cube;
050    }
051
052    public boolean usesDimension(Dimension dimension, boolean maybe) {
053        return false;
054    }
055
056    public Dimension getDimension() {
057        return null;
058    }
059
060    public Hierarchy getHierarchy() {
061        return null;
062    }
063
064    public Level getLevel() {
065        return null;
066    }
067
068    public boolean equals(Object obj) {
069        if (obj instanceof CubeType) {
070            CubeType that = (CubeType) obj;
071            return TypeUtil.equal(this.cube, that.cube);
072        } else {
073            return false;
074        }
075    }
076
077    public int hashCode() {
078        return cube == null
079            ? 0
080            : cube.hashCode();
081    }
082}
083
084// End CubeType.java