| 1 11 package mondrian.rolap.agg; 12 13 import mondrian.rolap.StarColumnPredicate; 14 import mondrian.rolap.RolapStar; 15 import mondrian.rolap.StarPredicate; 16 17 import java.util.List ; 18 import java.util.Collections ; 19 20 26 public abstract class AbstractColumnPredicate implements StarColumnPredicate { 27 private final RolapStar.Column constrainedColumn; 28 29 34 protected AbstractColumnPredicate(RolapStar.Column constrainedColumn) { 35 this.constrainedColumn = constrainedColumn; 36 } 37 38 public RolapStar.Column getConstrainedColumn() { 39 return constrainedColumn; 40 } 41 42 public List <RolapStar.Column> getConstrainedColumnList() { 43 return Collections.singletonList(constrainedColumn); 44 } 45 46 public boolean evaluate(List <Object > valueList) { 47 assert valueList.size() == 1; 48 return evaluate(valueList.get(0)); 49 } 50 51 public boolean equalConstraint(StarPredicate that) { 52 return false; 53 } 54 55 56 public static class Factory { 57 66 public static StarColumnPredicate equal( 67 RolapStar.Column column, 68 Object value) 69 { 70 return new ValueColumnPredicate(column, value); 71 } 72 73 79 public static StarColumnPredicate or( 80 RolapStar.Column column, 81 List <StarColumnPredicate> list) 82 { 83 return new ListColumnPredicate(column, list); 84 } 85 86 91 public static LiteralStarPredicate bool(boolean b) { 92 return b ? LiteralStarPredicate.TRUE : LiteralStarPredicate.FALSE; 93 } 94 95 103 public static StarColumnPredicate equal(ValueColumnPredicate predicate) { 104 return equal( 105 predicate.getConstrainedColumn(), 106 predicate.getValue()); 107 } 108 } 109 } 110 111 | Popular Tags |