extensions/net.sf.basedb.meludi/trunk/src/net/sf/basedb/meludi/query/LowerExpression.java

Code
Comments
Other
Rev Date Author Line
2933 14 Nov 14 olle 1 package net.sf.basedb.meludi.query;
2933 14 Nov 14 olle 2
2933 14 Nov 14 olle 3 import java.util.Collection;
2933 14 Nov 14 olle 4 import java.util.Collections;
2933 14 Nov 14 olle 5
2933 14 Nov 14 olle 6 import net.sf.basedb.core.BaseException;
2933 14 Nov 14 olle 7 import net.sf.basedb.core.DbControl;
2933 14 Nov 14 olle 8 import net.sf.basedb.core.query.Expression;
2933 14 Nov 14 olle 9 import net.sf.basedb.core.query.Query;
2933 14 Nov 14 olle 10 import net.sf.basedb.core.query.QueryElement;
2933 14 Nov 14 olle 11 import net.sf.basedb.util.EqualsHelper;
2933 14 Nov 14 olle 12
2933 14 Nov 14 olle 13 /**
2933 14 Nov 14 olle 14   Expression that converts a string value to lowercase.
2933 14 Nov 14 olle 15   @author nicklas
2933 14 Nov 14 olle 16   @since 2.15
2933 14 Nov 14 olle 17 */
2933 14 Nov 14 olle 18 public class LowerExpression 
2933 14 Nov 14 olle 19   implements Expression 
2933 14 Nov 14 olle 20 {
2933 14 Nov 14 olle 21
2933 14 Nov 14 olle 22   private final Expression e;
2933 14 Nov 14 olle 23   
2933 14 Nov 14 olle 24   public LowerExpression(Expression e)
2933 14 Nov 14 olle 25   {
2933 14 Nov 14 olle 26     this.e = e;
2933 14 Nov 14 olle 27   }
2933 14 Nov 14 olle 28   
2933 14 Nov 14 olle 29   @Override
2933 14 Nov 14 olle 30   public String toQl(Query query, DbControl dc)
2933 14 Nov 14 olle 31     throws BaseException 
2933 14 Nov 14 olle 32   {
2933 14 Nov 14 olle 33     return "lower("+e.toQl(query, dc) + ")";
2933 14 Nov 14 olle 34   }
2933 14 Nov 14 olle 35
2933 14 Nov 14 olle 36   @Override
2933 14 Nov 14 olle 37   public Collection<? extends QueryElement> getChildren() 
2933 14 Nov 14 olle 38   {
2933 14 Nov 14 olle 39     return Collections.singleton(e);
2933 14 Nov 14 olle 40   }
2933 14 Nov 14 olle 41   
2933 14 Nov 14 olle 42   @Override
2933 14 Nov 14 olle 43   public String toString()
2933 14 Nov 14 olle 44   {
2933 14 Nov 14 olle 45     return "lower(" + e + ")";
2933 14 Nov 14 olle 46   }
2933 14 Nov 14 olle 47   
2933 14 Nov 14 olle 48   /**
2933 14 Nov 14 olle 49     This expression is equal to another LowerExpression if their 
2933 14 Nov 14 olle 50     child expressions are equal.
2933 14 Nov 14 olle 51   */
2933 14 Nov 14 olle 52   @Override
2933 14 Nov 14 olle 53   public boolean equals(Object other)
2933 14 Nov 14 olle 54   {
2933 14 Nov 14 olle 55     if (this == other) return true;
2933 14 Nov 14 olle 56     if ((other == null) || (super.getClass() != other.getClass())) return false;
2933 14 Nov 14 olle 57     LowerExpression o = (LowerExpression)other;
2933 14 Nov 14 olle 58     return EqualsHelper.equals(e, o.e);
2933 14 Nov 14 olle 59   }
2933 14 Nov 14 olle 60   
2933 14 Nov 14 olle 61   @Override
2933 14 Nov 14 olle 62   public int hashCode()
2933 14 Nov 14 olle 63   {
2933 14 Nov 14 olle 64     return EqualsHelper.hashCode(e) + getClass().hashCode();
2933 14 Nov 14 olle 65   }
2933 14 Nov 14 olle 66 }