com.evuv.builders.ExpressionBuilder Maven / Gradle / Ivy
package com.evuv.builders;
import com.evuv.EventProperty;
import com.evuv.expressions.AndExpression;
import com.evuv.expressions.BiggerThanExpression;
import com.evuv.expressions.ComparableExpression;
import com.evuv.expressions.ContainsExpression;
import com.evuv.expressions.EqualityExpression;
import com.evuv.expressions.ExistsExpression;
import com.evuv.expressions.Expression;
import com.evuv.expressions.NotExpression;
import com.evuv.expressions.OrExpression;
import com.evuv.expressions.SimplePropertyExpression;
import com.evuv.expressions.SimpleValueExpression;
import com.evuv.expressions.SmallerThanExpression;
public class ExpressionBuilder {
@SuppressWarnings("rawtypes")
public static Expression and(Expression left, Expression right) {
AndExpression and = new AndExpression();
and.setLeft(left);
and.setRight(right);
return and;
}
@SuppressWarnings("rawtypes")
public static Expression or(Expression left, Expression right) {
OrExpression or = new OrExpression();
or.setLeft(left);
or.setRight(right);
return or;
}
@SuppressWarnings("rawtypes")
public static Expression not(Expression node) {
NotExpression not = new NotExpression();
not.setLeft(node);
return not;
}
public static Expression bigger(ComparableExpression left, ComparableExpression right) {
return new BiggerThanExpression<>(left, right);
}
public static Expression smaller(ComparableExpression left, ComparableExpression right) {
return new SmallerThanExpression<>(left, right);
}
public static Expression equals(ComparableExpression left, ComparableExpression right) {
return new EqualityExpression<>(left, right);
}
public static Expression contains(ComparableExpression left, ComparableExpression right) {
return new ContainsExpression<>(left, right);
}
public static > Expression exists(SimplePropertyExpression left) {
return new ExistsExpression<>(left);
}
public static > SimpleValueExpression value(T t) {
return new SimpleValueExpression(t);
}
public static > SimplePropertyExpression prop(String name, Class clazz) {
EventProperty ev = new EventProperty();
ev.setPropertyName(name);
return new SimplePropertyExpression(ev);
}
}