All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy