mirror of
https://github.com/querydsl/querydsl.git
synced 2026-07-03 21:07:49 +08:00
refactored PathMetadata.PathType class and instances
This commit is contained in:
parent
407af3bec2
commit
2d25c424a8
@ -39,7 +39,7 @@ public class Grammar {
|
||||
}
|
||||
|
||||
public static <A> Expr.Boolean in(A left, CollectionType<A> right){
|
||||
return createBoolean(Op.IN, createConstant(left), (Expr<?>)right);
|
||||
return createBoolean(Ops.IN, createConstant(left), (Expr<?>)right);
|
||||
}
|
||||
|
||||
public static <A extends Comparable<A>> Expr.Comparable<A> mult(Expr<A> left, A right) {
|
||||
|
||||
@ -13,55 +13,51 @@ package com.mysema.query.grammar;
|
||||
*/
|
||||
public interface Ops {
|
||||
|
||||
/**
|
||||
* Operators (the return type is encoded in the 1st generic parameter)
|
||||
*/
|
||||
public interface Op<RT> {
|
||||
Op<java.lang.Boolean> EQ = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> IN = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> ISNOTNULL = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> ISNULL = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> ISTYPEOF = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NE = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NOTIN = new OpImpl<java.lang.Boolean>();
|
||||
}
|
||||
public static class Op<RT>{}
|
||||
|
||||
public static final class OpImpl<RT> implements Op<RT>{}
|
||||
// general
|
||||
Op<java.lang.Boolean> EQ = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> IN = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> ISNOTNULL = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> ISNULL = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> ISTYPEOF = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NE = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NOTIN = new Op<java.lang.Boolean>();
|
||||
|
||||
// Boolean
|
||||
Op<java.lang.Boolean> AND = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NOT = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> OR = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> XNOR = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> XOR = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> AND = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NOT = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> OR = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> XNOR = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> XOR = new Op<java.lang.Boolean>();
|
||||
|
||||
// Comparable
|
||||
Op<java.lang.Boolean> BETWEEN = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> GOE = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> GT = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> LOE = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> LT = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NOTBETWEEN = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> BETWEEN = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> GOE = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> GT = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> LOE = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> LT = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> NOTBETWEEN = new Op<java.lang.Boolean>();
|
||||
|
||||
// Date
|
||||
Op<java.lang.Boolean> AFTER = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> BEFORE = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> AFTER = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.Boolean> BEFORE = new Op<java.lang.Boolean>();
|
||||
|
||||
// Number
|
||||
Op<java.lang.Number> ADD = new OpImpl<java.lang.Number>();
|
||||
Op<java.lang.Number> DIV = new OpImpl<java.lang.Number>();
|
||||
Op<java.lang.Number> MOD = new OpImpl<java.lang.Number>();
|
||||
Op<java.lang.Number> MULT = new OpImpl<java.lang.Number>();
|
||||
Op<java.lang.Number> SQRT = new OpImpl<java.lang.Number>();
|
||||
Op<java.lang.Number> SUB = new OpImpl<java.lang.Number>();
|
||||
Op<java.lang.Number> ADD = new Op<java.lang.Number>();
|
||||
Op<java.lang.Number> DIV = new Op<java.lang.Number>();
|
||||
Op<java.lang.Number> MOD = new Op<java.lang.Number>();
|
||||
Op<java.lang.Number> MULT = new Op<java.lang.Number>();
|
||||
Op<java.lang.Number> SQRT = new Op<java.lang.Number>();
|
||||
Op<java.lang.Number> SUB = new Op<java.lang.Number>();
|
||||
|
||||
// String
|
||||
Op<java.lang.String> CONCAT = new OpImpl<java.lang.String>();
|
||||
Op<java.lang.Boolean> LIKE = new OpImpl<java.lang.Boolean>();
|
||||
Op<java.lang.String> LOWER = new OpImpl<java.lang.String>();
|
||||
Op<java.lang.String> SUBSTR1ARG = new OpImpl<java.lang.String>();
|
||||
Op<java.lang.String> SUBSTR2ARGS = new OpImpl<java.lang.String>();
|
||||
Op<java.lang.String> TRIM = new OpImpl<java.lang.String>();
|
||||
Op<java.lang.String> UPPER = new OpImpl<java.lang.String>();
|
||||
Op<java.lang.String> CONCAT = new Op<java.lang.String>();
|
||||
Op<java.lang.Boolean> LIKE = new Op<java.lang.Boolean>();
|
||||
Op<java.lang.String> LOWER = new Op<java.lang.String>();
|
||||
Op<java.lang.String> SUBSTR1ARG = new Op<java.lang.String>();
|
||||
Op<java.lang.String> SUBSTR2ARGS = new Op<java.lang.String>();
|
||||
Op<java.lang.String> TRIM = new Op<java.lang.String>();
|
||||
Op<java.lang.String> UPPER = new Op<java.lang.String>();
|
||||
|
||||
}
|
||||
|
||||
@ -13,7 +13,6 @@ import static com.mysema.query.grammar.types.Factory.createString;
|
||||
import com.mysema.query.grammar.Ops;
|
||||
import com.mysema.query.grammar.Order;
|
||||
import com.mysema.query.grammar.OrderSpecifier;
|
||||
import com.mysema.query.grammar.Ops.Op;
|
||||
import com.mysema.query.grammar.types.Expr.CollectionType;
|
||||
|
||||
/**
|
||||
@ -124,11 +123,11 @@ class IntGrammar{
|
||||
}
|
||||
|
||||
static <A> Expr.Boolean eq(Expr<A> left, A right) {
|
||||
return createBoolean(Op.EQ, left, createConstant(right));
|
||||
return createBoolean(Ops.EQ, left, createConstant(right));
|
||||
}
|
||||
|
||||
static <A> Expr.Boolean eq(Expr<A> left, Expr<? super A> right) {
|
||||
return createBoolean(Op.EQ, left, right);
|
||||
return createBoolean(Ops.EQ, left, right);
|
||||
}
|
||||
|
||||
static <A extends Comparable<A>> Expr.Boolean goe(Expr<A> left,
|
||||
@ -152,21 +151,21 @@ class IntGrammar{
|
||||
|
||||
static <A extends Comparable<A>> Expr.Boolean in(Expr<A> left,
|
||||
A... rest) {
|
||||
return createBoolean(Op.IN, left, createConstant(rest));
|
||||
return createBoolean(Ops.IN, left, createConstant(rest));
|
||||
}
|
||||
|
||||
|
||||
|
||||
static <A> Expr.Boolean in(Expr<A> left, CollectionType<A> right){
|
||||
return createBoolean(Op.IN, left, (Expr<?>)right);
|
||||
return createBoolean(Ops.IN, left, (Expr<?>)right);
|
||||
}
|
||||
|
||||
static <A> Expr.Boolean isnotnull(Expr<A> left) {
|
||||
return createBoolean(Op.ISNOTNULL, left);
|
||||
return createBoolean(Ops.ISNOTNULL, left);
|
||||
}
|
||||
|
||||
static <A> Expr.Boolean isnull(Expr<A> left) {
|
||||
return createBoolean(Op.ISNULL, left);
|
||||
return createBoolean(Ops.ISNULL, left);
|
||||
}
|
||||
|
||||
static Expr.Boolean like(Expr<String> left, String right) {
|
||||
@ -197,11 +196,11 @@ class IntGrammar{
|
||||
}
|
||||
|
||||
static <A> Expr.Boolean ne(Expr<A> left, A right) {
|
||||
return createBoolean(Op.NE, left, createConstant(right));
|
||||
return createBoolean(Ops.NE, left, createConstant(right));
|
||||
}
|
||||
|
||||
static <A> Expr.Boolean ne(Expr<A> left, Expr<? super A> right) {
|
||||
return createBoolean(Op.NE, left, right);
|
||||
return createBoolean(Ops.NE, left, right);
|
||||
}
|
||||
|
||||
static <A extends Comparable<A>> Expr.Boolean notBetween(Expr<A> left,
|
||||
@ -216,11 +215,11 @@ class IntGrammar{
|
||||
|
||||
static <A extends Comparable<A>> Expr.Boolean notIn(Expr<A> left,
|
||||
A... rest) {
|
||||
return createBoolean(Op.NOTIN, left, createConstant(rest));
|
||||
return createBoolean(Ops.NOTIN, left, createConstant(rest));
|
||||
}
|
||||
|
||||
static <A> Expr.Boolean notIn(Expr<A> left, CollectionType<A> right){
|
||||
return createBoolean(Op.NOTIN, left, (Expr<?>)right);
|
||||
return createBoolean(Ops.NOTIN, left, (Expr<?>)right);
|
||||
}
|
||||
|
||||
static Expr.Boolean or(Expr.Boolean left, Expr.Boolean right) {
|
||||
@ -240,7 +239,7 @@ class IntGrammar{
|
||||
}
|
||||
|
||||
static <A, B extends A> Expr.Boolean typeOf(Expr<A> left, Class<B> right) {
|
||||
return createBoolean(Op.ISTYPEOF, left, createConstant(right));
|
||||
return createBoolean(Ops.ISTYPEOF, left, createConstant(right));
|
||||
}
|
||||
|
||||
static Expr.String upper(Expr<String> left) {
|
||||
|
||||
@ -30,36 +30,36 @@ public final class PathMetadata<T> {
|
||||
|
||||
public static PathMetadata<Integer> forListAccess(Path.Collection<?> parent,
|
||||
Expr<Integer> index) {
|
||||
return new PathMetadata<Integer>(parent, index, PathType.LISTVALUE);
|
||||
return new PathMetadata<Integer>(parent, index, LISTVALUE);
|
||||
}
|
||||
|
||||
public static PathMetadata<Integer> forListAccess(Path.Collection<?> parent,
|
||||
int index) {
|
||||
return new PathMetadata<Integer>(parent, Factory.createConstant(index),
|
||||
PathType.LISTVALUE_CONSTANT);
|
||||
LISTVALUE_CONSTANT);
|
||||
}
|
||||
|
||||
public static PathMetadata<Integer> forSize(Path.Collection<?> parent) {
|
||||
return new PathMetadata<Integer>(parent, null, PathType.SIZE);
|
||||
return new PathMetadata<Integer>(parent, null, SIZE);
|
||||
}
|
||||
|
||||
public static <KT> PathMetadata<KT> forMapAccess(Path.Map<?, ?> parent,
|
||||
Expr<KT> key) {
|
||||
return new PathMetadata<KT>(parent, key, PathType.MAPVALUE);
|
||||
return new PathMetadata<KT>(parent, key, MAPVALUE);
|
||||
}
|
||||
|
||||
public static <KT> PathMetadata<KT> forMapAccess(Path.Map<?, ?> parent,
|
||||
KT key) {
|
||||
return new PathMetadata<KT>(parent, Factory.createConstant(key), PathType.MAPVALUE_CONSTANT);
|
||||
return new PathMetadata<KT>(parent, Factory.createConstant(key), MAPVALUE_CONSTANT);
|
||||
}
|
||||
|
||||
public static PathMetadata<String> forProperty(Path<?> parent,
|
||||
String property) {
|
||||
return new PathMetadata<String>(parent, Factory.createConstant(property), PathType.PROPERTY);
|
||||
return new PathMetadata<String>(parent, Factory.createConstant(property), PROPERTY);
|
||||
}
|
||||
|
||||
public static PathMetadata<String> forVariable(String variable) {
|
||||
return new PathMetadata<String>(null, Factory.createConstant(variable), PathType.VARIABLE);
|
||||
return new PathMetadata<String>(null, Factory.createConstant(variable), VARIABLE);
|
||||
}
|
||||
|
||||
public Expr<T> getExpression() {
|
||||
@ -74,20 +74,18 @@ public final class PathMetadata<T> {
|
||||
return pathType;
|
||||
}
|
||||
|
||||
public static final class PathTypeImpl implements PathType{ }
|
||||
|
||||
/**
|
||||
* Type provides
|
||||
*
|
||||
*/
|
||||
public interface PathType extends Ops.Op<Path<?>> {
|
||||
PathType LISTVALUE = new PathTypeImpl();
|
||||
PathType LISTVALUE_CONSTANT = new PathTypeImpl();
|
||||
PathType MAPVALUE = new PathTypeImpl();
|
||||
PathType MAPVALUE_CONSTANT = new PathTypeImpl();
|
||||
PathType PROPERTY = new PathTypeImpl();
|
||||
PathType VARIABLE = new PathTypeImpl();
|
||||
PathType SIZE = new PathTypeImpl();
|
||||
}
|
||||
public static class PathType extends Ops.Op<Path<?>> {}
|
||||
|
||||
public static PathType LISTVALUE = new PathType();
|
||||
public static PathType LISTVALUE_CONSTANT = new PathType();
|
||||
public static PathType MAPVALUE = new PathType();
|
||||
public static PathType MAPVALUE_CONSTANT = new PathType();
|
||||
public static PathType PROPERTY = new PathType();
|
||||
public static PathType VARIABLE = new PathType();
|
||||
public static PathType SIZE = new PathType();
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user