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) 2011-2011 Pentaho
008// All Rights Reserved.
009*/
010package mondrian.rolap.agg;
011
012import mondrian.rolap.StarColumnPredicate;
013
014/**
015 * Utilities for {@link mondrian.rolap.StarPredicate}s and
016 * {@link mondrian.rolap.StarColumnPredicate}s.
017 *
018 * @author jhyde
019 */
020public class StarPredicates {
021    /**
022     * Optimizes a column predicate.
023     *
024     * @param predicate Column predicate
025     * @return Optimized predicate
026     */
027    public static StarColumnPredicate optimize(StarColumnPredicate predicate) {
028        if (predicate instanceof ListColumnPredicate && false) {
029            ListColumnPredicate listColumnPredicate =
030                (ListColumnPredicate) predicate;
031
032            switch (listColumnPredicate.getPredicates().size()) {
033            case 0:
034                return new LiteralStarPredicate(
035                    predicate.getConstrainedColumn(), false);
036            case 1:
037                return listColumnPredicate.getPredicates().get(0);
038            default:
039                return listColumnPredicate;
040            }
041        }
042        return predicate;
043    }
044}
045
046// End StarPredicates.java