package net.ion.craken.expression; import net.ion.craken.node.NodeCommonMap; import net.ion.craken.node.crud.Filters; import org.apache.lucene.search.Filter; public class BooleanExpression extends ValueObject implements Expression , ConstantExpression{ public final Boolean bvalue; public BooleanExpression(boolean bvalue) { this.bvalue = bvalue; } @Override public Comparable value(NodeCommonMap node) { return bvalue; } public Object constantValue(){ return bvalue ; } @Override public Filter filter(Op operand, QualifiedNameExpression qne) { String field = qne.lastName(); if( operand == Op.EQ){ return Filters.eq(qne.lastName(), bvalue.toString()) ; } else if (operand == Op.CONTAIN) { return Filters.eq(qne.lastName(), bvalue.toString()) ; } else if (operand == Op.GT){ return Filters.gt(field, bvalue.toString()) ; } else if (operand == Op.GE) { return Filters.gte(field, bvalue.toString()) ; } else if (operand == Op.LT) { return Filters.lt(field, bvalue.toString()) ; } else if (operand == Op.LE){ return Filters.lte(field, bvalue.toString()) ; } else { throw new IllegalArgumentException("operand :" + operand) ; } } }