This commit is contained in:
Timo Westkämper 2010-09-16 08:18:31 +00:00
parent fbdd7b361b
commit c70893fdcd
3 changed files with 24 additions and 20 deletions

View File

@ -101,6 +101,10 @@ public class ConstantImpl<T> extends ExpressionBase<T> implements Constant<T> {
return rv;
}
}
// public static <C> Constant<C> create(C value){
// return new ConstantImpl<C>(value);
// }
private final T constant;

View File

@ -21,7 +21,7 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>(arg.toString().toLowerCase());
return ConstantImpl.create(arg.toString().toLowerCase());
}else{
return new OperationImpl<String>(String.class, Ops.LOWER, arg);
}
@ -32,7 +32,7 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>(arg.toString().toUpperCase());
return ConstantImpl.create(arg.toString().toUpperCase());
}else{
return new OperationImpl<String>(String.class, Ops.UPPER, arg);
}
@ -43,9 +43,9 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>(escapeForLike((Constant<String>)arg) + "%");
return ConstantImpl.create(escapeForLike((Constant<String>)arg) + "%");
}else{
return new OperationImpl<String>(String.class, Ops.CONCAT, arg, new ConstantImpl<String>("%"));
return new OperationImpl<String>(String.class, Ops.CONCAT, arg, ConstantImpl.create("%"));
}
}
};
@ -54,9 +54,9 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>(escapeForLike((Constant<String>)arg).toLowerCase() + "%");
return ConstantImpl.create(escapeForLike((Constant<String>)arg).toLowerCase() + "%");
}else{
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, arg, new ConstantImpl<String>("%"));
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, arg, ConstantImpl.create("%"));
return new OperationImpl<String>(String.class, Ops.LOWER, concated);
}
}
@ -66,9 +66,9 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>("%" + escapeForLike((Constant<String>)arg));
return ConstantImpl.create("%" + escapeForLike((Constant<String>)arg));
}else{
return new OperationImpl<String>(String.class, Ops.CONCAT, new ConstantImpl<String>("%"), arg);
return new OperationImpl<String>(String.class, Ops.CONCAT, ConstantImpl.create("%"), arg);
}
}
};
@ -77,9 +77,9 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>("%" + escapeForLike((Constant<String>)arg).toLowerCase());
return ConstantImpl.create("%" + escapeForLike((Constant<String>)arg).toLowerCase());
}else{
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, new ConstantImpl<String>("%"), arg);
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, ConstantImpl.create("%"), arg);
return new OperationImpl<String>(String.class, Ops.LOWER, concated);
}
}
@ -89,10 +89,10 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>("%" + escapeForLike((Constant<String>)arg) + "%");
return ConstantImpl.create("%" + escapeForLike((Constant<String>)arg) + "%");
}else{
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, new ConstantImpl<String>("%"), arg);
return new OperationImpl<String>(String.class, Ops.CONCAT, concated, new ConstantImpl<String>("%"));
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, ConstantImpl.create("%"), arg);
return new OperationImpl<String>(String.class, Ops.CONCAT, concated, ConstantImpl.create("%"));
}
}
};
@ -101,10 +101,10 @@ public final class Converters {
@Override
public Expression<String> transform(Expression<String> arg) {
if (arg instanceof Constant<?>){
return new ConstantImpl<String>("%" + escapeForLike((Constant<String>)arg).toLowerCase() + "%");
return ConstantImpl.create("%" + escapeForLike((Constant<String>)arg).toLowerCase() + "%");
}else{
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, new ConstantImpl<String>("%"), arg);
concated = new OperationImpl<String>(String.class, Ops.CONCAT, concated, new ConstantImpl<String>("%"));
Expression<String> concated = new OperationImpl<String>(String.class, Ops.CONCAT, ConstantImpl.create("%"), arg);
concated = new OperationImpl<String>(String.class, Ops.CONCAT, concated, ConstantImpl.create("%"));
return new OperationImpl<String>(String.class, Ops.LOWER, concated);
}
}

View File

@ -20,7 +20,7 @@ public final class PathMetadataFactory {
}
public static PathMetadata<Integer> forArrayAccess(Path<?> parent, @Nonnegative int index) {
return new PathMetadata<Integer>(parent, new ConstantImpl<Integer>(index), PathType.ARRAYVALUE_CONSTANT);
return new PathMetadata<Integer>(parent, ConstantImpl.create(index), PathType.ARRAYVALUE_CONSTANT);
}
public static PathMetadata<Integer> forListAccess(Path<?> parent, Expression<Integer> index) {
@ -28,7 +28,7 @@ public final class PathMetadataFactory {
}
public static PathMetadata<Integer> forListAccess(Path<?> parent, @Nonnegative int index) {
return new PathMetadata<Integer>(parent, new ConstantImpl<Integer>(index), PathType.LISTVALUE_CONSTANT);
return new PathMetadata<Integer>(parent, ConstantImpl.create(index), PathType.LISTVALUE_CONSTANT);
}
public static <KT> PathMetadata<KT> forMapAccess(Path<?> parent, Expression<KT> key) {
@ -40,11 +40,11 @@ public final class PathMetadataFactory {
}
public static PathMetadata<String> forProperty(Path<?> parent, String property) {
return new PathMetadata<String>(parent, new ConstantImpl<String>(Assert.hasLength(property,"property")), PathType.PROPERTY);
return new PathMetadata<String>(parent, ConstantImpl.create(Assert.hasLength(property,"property"), true), PathType.PROPERTY);
}
public static PathMetadata<String> forVariable(String variable) {
return new PathMetadata<String>(null, new ConstantImpl<String>(Assert.hasLength(variable,"variable")), PathType.VARIABLE);
return new PathMetadata<String>(null, ConstantImpl.create(Assert.hasLength(variable,"variable"), true), PathType.VARIABLE);
}
private PathMetadataFactory(){}