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) 2004-2005 TONBELLER AG
008// Copyright (C) 2005-2009 Pentaho and others
009// All Rights Reserved.
010*/
011package mondrian.rolap.sql;
012
013import mondrian.rolap.*;
014import mondrian.rolap.aggmatcher.AggStar;
015
016import java.util.List;
017
018/**
019 * "Light version" of a {@link mondrian.rolap.sql.TupleConstraint},
020 * represents one of
021 * member.children, level.members, member.descendants, {enumeration}.
022 */
023public interface CrossJoinArg {
024    CrossJoinArg[] EMPTY_ARRAY = new CrossJoinArg[0];
025
026    RolapLevel getLevel();
027
028    List<RolapMember> getMembers();
029
030    void addConstraint(
031        SqlQuery sqlQuery,
032        RolapCube baseCube,
033        AggStar aggStar);
034
035    boolean isPreferInterpreter(boolean joinArg);
036}
037
038// End CrossJoinArg.java