Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.dellroad.querystream.jpa.util.ForwardingCriteriaBuilder Maven / Gradle / Ivy
/*
* Copyright (C) 2018 Archie L. Cobbs. All rights reserved.
*/
package org.dellroad.querystream.jpa.util;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import javax.persistence.Tuple;
import javax.persistence.criteria.CollectionJoin;
import javax.persistence.criteria.CompoundSelection;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaDelete;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.ListJoin;
import javax.persistence.criteria.MapJoin;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.ParameterExpression;
import javax.persistence.criteria.Path;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Selection;
import javax.persistence.criteria.SetJoin;
import javax.persistence.criteria.Subquery;
/**
* {@link CriteriaBuilder} that forwards all methods to a delegate {@linkplain #getCriteriaBuilder provided} by the subclass.
*
*
* This class also adds some "fail fast" error checking for null values so that errors occur immediately, instead of
* later (and more mysteriously) during query execution.
*/
public abstract class ForwardingCriteriaBuilder implements CriteriaBuilder {
/**
* Get the delegate {@link CriteriaBuilder} to whom all methods should be forwarded.
*
* @return the underlying {@link CriteriaBuilder}
*/
protected abstract CriteriaBuilder getCriteriaBuilder();
@Override
public CriteriaQuery createQuery() {
return this.getCriteriaBuilder().createQuery();
}
@Override
public CriteriaQuery createQuery(Class resultClass) {
this.nullCheck("resultClass", resultClass);
return this.getCriteriaBuilder().createQuery(resultClass);
}
@Override
public CriteriaQuery createTupleQuery() {
return this.getCriteriaBuilder().createTupleQuery();
}
@Override
public CriteriaUpdate createCriteriaUpdate(Class targetEntity) {
this.nullCheck("targetEntity", targetEntity);
return this.getCriteriaBuilder().createCriteriaUpdate(targetEntity);
}
@Override
public CriteriaDelete createCriteriaDelete(Class targetEntity) {
this.nullCheck("targetEntity", targetEntity);
return this.getCriteriaBuilder().createCriteriaDelete(targetEntity);
}
@Override
public CompoundSelection construct(Class resultClass, Selection>... selections) {
this.nullCheck("resultClass", resultClass);
this.nullCheck("selections", selections);
return this.getCriteriaBuilder().construct(resultClass, selections);
}
@Override
public CompoundSelection tuple(Selection>... selections) {
this.nullCheck("selections", selections);
return this.getCriteriaBuilder().tuple(selections);
}
@Override
public CompoundSelection array(Selection>... selections) {
this.nullCheck("selections", selections);
return this.getCriteriaBuilder().array(selections);
}
@Override
public Order asc(Expression> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().asc(expr);
}
@Override
public Order desc(Expression> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().desc(expr);
}
@Override
public Expression avg(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().avg(expr);
}
@Override
public Expression sum(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().sum(expr);
}
@Override
public Expression sumAsLong(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().sumAsLong(expr);
}
@Override
public Expression sumAsDouble(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().sumAsDouble(expr);
}
@Override
public Expression max(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().max(expr);
}
@Override
public Expression min(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().min(expr);
}
@Override
public > Expression greatest(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().greatest(expr);
}
@Override
public > Expression least(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().least(expr);
}
@Override
public Expression count(Expression> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().count(expr);
}
@Override
public Expression countDistinct(Expression> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().countDistinct(expr);
}
@Override
public Predicate exists(Subquery> subquery) {
this.nullCheck("subquery", subquery);
return this.getCriteriaBuilder().exists(subquery);
}
@Override
public Expression all(Subquery subquery) {
this.nullCheck("subquery", subquery);
return this.getCriteriaBuilder().all(subquery);
}
@Override
public Expression some(Subquery subquery) {
this.nullCheck("subquery", subquery);
return this.getCriteriaBuilder().some(subquery);
}
@Override
public Expression any(Subquery subquery) {
this.nullCheck("subquery", subquery);
return this.getCriteriaBuilder().any(subquery);
}
@Override
public Predicate and(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().and(x, y);
}
@Override
public Predicate and(Predicate... preds) {
this.nullCheck("preds", preds);
return this.getCriteriaBuilder().and(preds);
}
@Override
public Predicate or(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().or(x, y);
}
@Override
public Predicate or(Predicate... preds) {
this.nullCheck("preds", preds);
return this.getCriteriaBuilder().or(preds);
}
@Override
public Predicate not(Expression pred) {
this.nullCheck("pred", pred);
return this.getCriteriaBuilder().not(pred);
}
@Override
public Predicate conjunction() {
return this.getCriteriaBuilder().conjunction();
}
@Override
public Predicate disjunction() {
return this.getCriteriaBuilder().disjunction();
}
@Override
public Predicate isTrue(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().isTrue(expr);
}
@Override
public Predicate isFalse(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().isFalse(expr);
}
@Override
public Predicate isNull(Expression> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().isNull(expr);
}
@Override
public Predicate isNotNull(Expression> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().isNotNull(expr);
}
@Override
public Predicate equal(Expression> x, Expression> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().equal(x, y);
}
@Override
public Predicate equal(Expression> x, Object y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().equal(x, y);
}
@Override
public Predicate notEqual(Expression> x, Expression> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().notEqual(x, y);
}
@Override
public Predicate notEqual(Expression> x, Object y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().notEqual(x, y);
}
@Override
public > Predicate greaterThan(Expression extends Y> x, Expression extends Y> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().greaterThan(x, y);
}
@Override
public > Predicate greaterThan(Expression extends Y> x, Y y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().greaterThan(x, y);
}
@Override
public > Predicate greaterThanOrEqualTo(Expression extends Y> x, Expression extends Y> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().greaterThanOrEqualTo(x, y);
}
@Override
public > Predicate greaterThanOrEqualTo(Expression extends Y> x, Y y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().greaterThanOrEqualTo(x, y);
}
@Override
public > Predicate lessThan(Expression extends Y> x, Expression extends Y> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().lessThan(x, y);
}
@Override
public > Predicate lessThan(Expression extends Y> x, Y y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().lessThan(x, y);
}
@Override
public > Predicate lessThanOrEqualTo(Expression extends Y> x, Expression extends Y> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().lessThanOrEqualTo(x, y);
}
@Override
public > Predicate lessThanOrEqualTo(Expression extends Y> x, Y y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().lessThanOrEqualTo(x, y);
}
@Override
public > Predicate between(Expression extends Y> expr,
Expression extends Y> lo, Expression extends Y> hi) {
this.nullCheck("expr", expr);
this.nullCheck("lo", lo);
this.nullCheck("hi", hi);
return this.getCriteriaBuilder().between(expr, lo, hi);
}
@Override
public > Predicate between(Expression extends Y> expr, Y lo, Y hi) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().between(expr, lo, hi);
}
@Override
public Predicate gt(Expression extends Number> x, Expression extends Number> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().gt(x, y);
}
@Override
public Predicate gt(Expression extends Number> x, Number y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().gt(x, y);
}
@Override
public Predicate ge(Expression extends Number> x, Expression extends Number> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().ge(x, y);
}
@Override
public Predicate ge(Expression extends Number> x, Number y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().ge(x, y);
}
@Override
public Predicate lt(Expression extends Number> x, Expression extends Number> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().lt(x, y);
}
@Override
public Predicate lt(Expression extends Number> x, Number y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().lt(x, y);
}
@Override
public Predicate le(Expression extends Number> x, Expression extends Number> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().le(x, y);
}
@Override
public Predicate le(Expression extends Number> x, Number y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().le(x, y);
}
@Override
public Expression neg(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().neg(expr);
}
@Override
public Expression abs(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().abs(expr);
}
@Override
public Expression sum(Expression extends N> x, Expression extends N> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().sum(x, y);
}
@Override
public Expression sum(Expression extends N> x, N y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().sum(x, y);
}
@Override
public Expression sum(N x, Expression extends N> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().sum(x, y);
}
@Override
public Expression prod(Expression extends N> x, Expression extends N> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().prod(x, y);
}
@Override
public Expression prod(Expression extends N> x, N y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().prod(x, y);
}
@Override
public Expression prod(N x, Expression extends N> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().prod(x, y);
}
@Override
public Expression diff(Expression extends N> x, Expression extends N> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().diff(x, y);
}
@Override
public Expression diff(Expression extends N> x, N y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().diff(x, y);
}
@Override
public Expression diff(N x, Expression extends N> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().diff(x, y);
}
@Override
public Expression quot(Expression extends Number> x, Expression extends Number> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().quot(x, y);
}
@Override
public Expression quot(Expression extends Number> x, Number y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().quot(x, y);
}
@Override
public Expression quot(Number x, Expression extends Number> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().quot(x, y);
}
@Override
public Expression mod(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().mod(x, y);
}
@Override
public Expression mod(Expression x, Integer y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().mod(x, y);
}
@Override
public Expression mod(Integer x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().mod(x, y);
}
@Override
public Expression sqrt(Expression extends Number> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().sqrt(expr);
}
@Override
public Expression toLong(Expression extends Number> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().toLong(expr);
}
@Override
public Expression toInteger(Expression extends Number> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().toInteger(expr);
}
@Override
public Expression toFloat(Expression extends Number> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().toFloat(expr);
}
@Override
public Expression toDouble(Expression extends Number> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().toDouble(expr);
}
@Override
public Expression toBigDecimal(Expression extends Number> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().toBigDecimal(expr);
}
@Override
public Expression toBigInteger(Expression extends Number> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().toBigInteger(expr);
}
@Override
public Expression toString(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().toString(expr);
}
@Override
public Expression literal(T expr) {
return this.getCriteriaBuilder().literal(expr);
}
@Override
public Expression nullLiteral(Class type) {
this.nullCheck("type", type);
return this.getCriteriaBuilder().nullLiteral(type);
}
@Override
public ParameterExpression parameter(Class type) {
this.nullCheck("type", type);
return this.getCriteriaBuilder().parameter(type);
}
@Override
public ParameterExpression parameter(Class type, String name) {
this.nullCheck("type", type);
this.nullCheck("name", name);
return this.getCriteriaBuilder().parameter(type, name);
}
@Override
public > Predicate isEmpty(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().isEmpty(expr);
}
@Override
public > Predicate isNotEmpty(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().isNotEmpty(expr);
}
@Override
public > Expression size(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().size(expr);
}
@Override
public > Expression size(C expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().size(expr);
}
@Override
public > Predicate isMember(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().isMember(x, y);
}
@Override
public > Predicate isMember(E x, Expression y) {
//this.nullCheck("x", x); ???
this.nullCheck("y", y);
return this.getCriteriaBuilder().isMember(x, y);
}
@Override
public > Predicate isNotMember(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().isNotMember(x, y);
}
@Override
public > Predicate isNotMember(E x, Expression y) {
//this.nullCheck("x", x); ???
this.nullCheck("y", y);
return this.getCriteriaBuilder().isNotMember(x, y);
}
@Override
public > Expression> values(M map) {
return this.getCriteriaBuilder().values(map);
}
@Override
public > Expression> keys(M map) {
return this.getCriteriaBuilder().keys(map);
}
@Override
public Predicate like(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().like(x, y);
}
@Override
public Predicate like(Expression x, String y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().like(x, y);
}
@Override
public Predicate like(Expression x, Expression y, Expression esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
this.nullCheck("esc", esc);
return this.getCriteriaBuilder().like(x, y, esc);
}
@Override
public Predicate like(Expression x, Expression y, char esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().like(x, y, esc);
}
@Override
public Predicate like(Expression x, String y, Expression esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
this.nullCheck("esc", esc);
return this.getCriteriaBuilder().like(x, y, esc);
}
@Override
public Predicate like(Expression x, String y, char esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().like(x, y, esc);
}
@Override
public Predicate notLike(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().notLike(x, y);
}
@Override
public Predicate notLike(Expression x, String y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().notLike(x, y);
}
@Override
public Predicate notLike(Expression x, Expression y, Expression esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
this.nullCheck("esc", esc);
return this.getCriteriaBuilder().notLike(x, y, esc);
}
@Override
public Predicate notLike(Expression x, Expression y, char esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().notLike(x, y, esc);
}
@Override
public Predicate notLike(Expression x, String y, Expression esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
this.nullCheck("esc", esc);
return this.getCriteriaBuilder().notLike(x, y, esc);
}
@Override
public Predicate notLike(Expression x, String y, char esc) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().notLike(x, y, esc);
}
@Override
public Expression concat(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().concat(x, y);
}
@Override
public Expression concat(Expression x, String y) {
this.nullCheck("x", x);
//this.nullCheck("y", y); ???
return this.getCriteriaBuilder().concat(x, y);
}
@Override
public Expression concat(String x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().concat(x, y);
}
@Override
public Expression substring(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().substring(x, y);
}
@Override
public Expression substring(Expression x, int y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().substring(x, y);
}
@Override
public Expression substring(Expression x, Expression y, Expression z) {
this.nullCheck("x", x);
this.nullCheck("y", y);
this.nullCheck("z", z);
return this.getCriteriaBuilder().substring(x, y, z);
}
@Override
public Expression substring(Expression x, int y, int z) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().substring(x, y, z);
}
@Override
public Expression trim(Expression x) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().trim(x);
}
@Override
public Expression trim(CriteriaBuilder.Trimspec x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().trim(x, y);
}
@Override
public Expression trim(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().trim(x, y);
}
@Override
public Expression trim(CriteriaBuilder.Trimspec x, Expression y, Expression z) {
this.nullCheck("x", x);
this.nullCheck("y", y);
this.nullCheck("z", z);
return this.getCriteriaBuilder().trim(x, y, z);
}
@Override
public Expression trim(char x, Expression y) {
this.nullCheck("y", y);
return this.getCriteriaBuilder().trim(x, y);
}
@Override
public Expression trim(CriteriaBuilder.Trimspec x, char y, Expression z) {
this.nullCheck("x", x);
this.nullCheck("z", z);
return this.getCriteriaBuilder().trim(x, y, z);
}
@Override
public Expression lower(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().lower(expr);
}
@Override
public Expression upper(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().upper(expr);
}
@Override
public Expression length(Expression expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().length(expr);
}
@Override
public Expression locate(Expression x, Expression y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().locate(x, y);
}
@Override
public Expression locate(Expression x, String y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().locate(x, y);
}
@Override
public Expression locate(Expression x, Expression y, Expression z) {
this.nullCheck("x", x);
this.nullCheck("y", y);
this.nullCheck("z", z);
return this.getCriteriaBuilder().locate(x, y, z);
}
@Override
public Expression locate(Expression x, String y, int z) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().locate(x, y, z);
}
@Override
public Expression currentDate() {
return this.getCriteriaBuilder().currentDate();
}
@Override
public Expression currentTimestamp() {
return this.getCriteriaBuilder().currentTimestamp();
}
@Override
public Expression currentTime() {
return this.getCriteriaBuilder().currentTime();
}
@Override
public CriteriaBuilder.In in(Expression extends T> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().in(expr);
}
@Override
public Expression coalesce(Expression extends Y> x, Expression extends Y> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().coalesce(x, y);
}
@Override
public Expression coalesce(Expression extends Y> x, Y y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().coalesce(x, y);
}
@Override
public Expression nullif(Expression x, Expression> y) {
this.nullCheck("x", x);
this.nullCheck("y", y);
return this.getCriteriaBuilder().nullif(x, y);
}
@Override
public Expression nullif(Expression x, Y y) {
this.nullCheck("x", x);
return this.getCriteriaBuilder().nullif(x, y);
}
@Override
public CriteriaBuilder.Coalesce coalesce() {
return this.getCriteriaBuilder().coalesce();
}
@Override
public CriteriaBuilder.SimpleCase selectCase(Expression extends C> expr) {
this.nullCheck("expr", expr);
return this.getCriteriaBuilder().selectCase(expr);
}
@Override
public CriteriaBuilder.Case selectCase() {
return this.getCriteriaBuilder().selectCase();
}
@Override
public Expression function(String name, Class type, Expression>... exprs) {
this.nullCheck("name", name);
this.nullCheck("type", type);
this.nullCheck("exprs", exprs);
return this.getCriteriaBuilder().function(name, type, exprs);
}
@Override
public Join treat(Join join, Class type) {
this.nullCheck("join", join);
this.nullCheck("type", type);
return this.getCriteriaBuilder().treat(join, type);
}
@Override
public CollectionJoin treat(CollectionJoin join, Class type) {
this.nullCheck("join", join);
this.nullCheck("type", type);
return this.getCriteriaBuilder().treat(join, type);
}
@Override
public SetJoin treat(SetJoin join, Class