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