splitted Param into Param and ParamExpression

This commit is contained in:
Timo Westkämper 2010-09-15 08:48:56 +00:00
parent 1e8620fb05
commit e0a820c2cc
36 changed files with 66 additions and 34 deletions

View File

@ -32,9 +32,9 @@ import com.mysema.query.QueryMetadata;
import com.mysema.query.types.Expression;
import com.mysema.query.types.FactoryExpression;
import com.mysema.query.types.Operation;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* DefaultEvaluatorFactory extends the EvaluatorFactory class to provide Java source

View File

@ -21,11 +21,11 @@ import com.mysema.query.collections.Cat;
import com.mysema.query.collections.MiniApi;
import com.mysema.query.collections.QCat;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.expr.ArrayConstructorExpression;
import com.mysema.query.types.expr.BooleanExpression;
import com.mysema.query.types.expr.ConstructorExpression;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.QTuple;
public class ColQueryStandardTest {

View File

@ -19,9 +19,9 @@ import javax.annotation.Nullable;
import com.mysema.query.types.Expression;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Path;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* DefaultQueryMetadata is the default implementation of the {@link QueryMetadata} interface

View File

@ -9,8 +9,8 @@ import javax.annotation.Nonnegative;
import com.mysema.query.types.Expression;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* Query provides a query interface of the fluent query DSL.

View File

@ -14,8 +14,8 @@ import javax.annotation.Nullable;
import com.mysema.query.types.Expression;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* QueryMetadata defines query metadata such as query sources, filtering

View File

@ -8,8 +8,8 @@ package com.mysema.query;
import javax.annotation.Nonnegative;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* SimpleQuery defines a simple querying interface than {@link Query}

View File

@ -8,8 +8,8 @@ package com.mysema.query.support;
import com.mysema.query.QueryModifiers;
import com.mysema.query.types.Expression;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* QueryBase provides a stub for Query implementations

View File

@ -18,10 +18,10 @@ import com.mysema.query.types.Expression;
import com.mysema.query.types.ExpressionUtils;
import com.mysema.query.types.Ops;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Path;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.SubQueryExpression;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.SimpleOperation;
import com.mysema.query.types.path.MapPath;

View File

@ -15,8 +15,8 @@ import com.mysema.query.SimpleProjectable;
import com.mysema.query.SimpleQuery;
import com.mysema.query.types.Expression;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
import edu.umd.cs.findbugs.annotations.SuppressWarnings;

View File

@ -47,7 +47,7 @@ public final class ExtractorVisitor implements Visitor<Expression<?>,Void>{
}
@Override
public Expression<?> visit(Param<?> expr, Void context) {
public Expression<?> visit(ParamExpression<?> expr, Void context) {
return expr;
}

View File

@ -0,0 +1,25 @@
package com.mysema.query.types;
/**
* @author tiwe
*
* @param <T>
*/
public interface ParamExpression<T> extends Expression<T>{
/**
* @return
*/
String getName();
/**
* @return
*/
boolean isAnon();
/**
* @return
*/
String getNotSetMessage();
}

View File

@ -5,6 +5,8 @@
*/
package com.mysema.query.types;
import com.mysema.query.types.expr.Param;
/**
* @author tiwe
*

View File

@ -151,7 +151,7 @@ public abstract class SerializerBase<S extends SerializerBase<S>> implements Vis
}
@Override
public Void visit(Param<?> param, Void context){
public Void visit(ParamExpression<?> param, Void context){
String paramLabel;
if (param.isAnon()){
paramLabel = anonParamPrefix + param.getName();

View File

@ -101,7 +101,7 @@ public final class ToStringVisitor implements Visitor<String,Templates>{
}
@Override
public String visit(Param<?> param, Templates templates) {
public String visit(ParamExpression<?> param, Templates templates) {
return "{" + param.getName() + "}";
}

View File

@ -55,6 +55,6 @@ public interface Visitor<R,C>{
* @param expr
*/
@Nullable
R visit(Param<?> expr, @Nullable C context);
R visit(ParamExpression<?> expr, @Nullable C context);
}

View File

@ -3,10 +3,11 @@
* All rights reserved.
*
*/
package com.mysema.query.types;
package com.mysema.query.types.expr;
import com.mysema.commons.lang.Assert;
import com.mysema.query.types.expr.SimpleExpression;
import com.mysema.query.types.ParamExpression;
import com.mysema.query.types.Visitor;
/**
* Param defines a parameter in a query with an optional name
@ -15,7 +16,7 @@ import com.mysema.query.types.expr.SimpleExpression;
*
* @param <T>
*/
public class Param<T> extends SimpleExpression<T> {
public class Param<T> extends SimpleExpression<T> implements ParamExpression<T>{
private static final long serialVersionUID = -6872502615009012503L;

View File

@ -6,7 +6,7 @@
package com.mysema.query.serialization;
import com.mysema.query.types.FactoryExpression;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamExpression;
import com.mysema.query.types.SerializerBase;
import com.mysema.query.types.SubQueryExpression;
import com.mysema.query.types.Templates;
@ -28,7 +28,7 @@ public class DummySerializer extends SerializerBase<DummySerializer>{
}
@Override
public Void visit(Param<?> expr, Void context) {
public Void visit(ParamExpression<?> expr, Void context) {
return null;
}

View File

@ -10,6 +10,8 @@ import static org.junit.Assert.assertFalse;
import org.junit.Test;
import com.mysema.query.types.expr.Param;
public class ParamTest {
Param<String> param11 = new Param<String>(String.class, "param1");

View File

@ -22,8 +22,8 @@ import com.mysema.query.lucene.LuceneSerializer;
import com.mysema.query.support.QueryMixin;
import com.mysema.query.types.EntityPath;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* SearchQuery is a Query implementation for Hibernate Search

View File

@ -259,7 +259,7 @@ public class JPQLSerializer extends SerializerBase<JPQLSerializer> {
}
@Override
public Void visit(Param<?> param, Void context){
public Void visit(ParamExpression<?> param, Void context){
append(":");
super.visit(param, context);
return null;

View File

@ -22,8 +22,8 @@ import org.hibernate.type.LongType;
import org.hibernate.type.ShortType;
import org.hibernate.type.Type;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.expr.Param;
/**
* Utility methods for Hibernate

View File

@ -9,8 +9,8 @@ import java.util.Map;
import javax.persistence.Query;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.expr.Param;
/**
* Utility methods for JPA

View File

@ -28,12 +28,12 @@ import com.mysema.query.jpa.domain.Cat;
import com.mysema.query.jpa.domain.DomesticCat;
import com.mysema.query.jpa.domain.QCat;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.expr.ArrayConstructorExpression;
import com.mysema.query.types.expr.BooleanExpression;
import com.mysema.query.types.expr.ConstructorExpression;
import com.mysema.query.types.expr.ListExpression;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.QTuple;
import com.mysema.query.types.expr.StringExpression;

View File

@ -20,6 +20,7 @@ import org.apache.commons.lang.ClassUtils;
import com.mysema.query.JoinExpression;
import com.mysema.query.QueryMetadata;
import com.mysema.query.types.*;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.SimpleOperation;
import com.mysema.query.types.expr.StringConstant;

View File

@ -28,11 +28,11 @@ import com.mysema.query.jdo.test.domain.QProduct;
import com.mysema.query.jdo.test.domain.QStore;
import com.mysema.query.jdo.test.domain.Store;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.expr.ArrayConstructorExpression;
import com.mysema.query.types.expr.BooleanExpression;
import com.mysema.query.types.expr.ConstructorExpression;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.QTuple;
public class JDOQLQueryStandardTest extends AbstractJDOTest {

View File

@ -23,8 +23,8 @@ import com.mysema.query.SimpleProjectable;
import com.mysema.query.SimpleQuery;
import com.mysema.query.support.QueryMixin;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* LuceneQuery is a Querydsl query implementation for Lucene queries.

View File

@ -23,6 +23,7 @@ import org.apache.lucene.util.NumericUtils;
import com.mysema.query.QueryMetadata;
import com.mysema.query.types.*;
import com.mysema.query.types.expr.Param;
/**
* Serializes Querydsl queries to Lucene queries.

View File

@ -36,9 +36,9 @@ import org.junit.Test;
import com.mysema.query.QueryException;
import com.mysema.query.QueryModifiers;
import com.mysema.query.SearchResults;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.PathMetadataFactory;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.path.EntityPathBase;
import com.mysema.query.types.path.NumberPath;
import com.mysema.query.types.path.StringPath;

View File

@ -39,12 +39,12 @@ import com.mysema.query.support.QueryMixin;
import com.mysema.query.types.Expression;
import com.mysema.query.types.FactoryExpression;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.Path;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.SubQueryExpression;
import com.mysema.query.types.custom.SimpleTemplate;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.QBean;
import com.mysema.query.types.query.ListSubQuery;
import com.mysema.util.ResultSetAdapter;

View File

@ -465,7 +465,7 @@ public class SQLSerializer extends SerializerBase<SQLSerializer> {
}
@Override
public Void visit(Param<?> param, Void context){
public Void visit(ParamExpression<?> param, Void context){
append("?");
constants.add(param);
if (constantPaths.size() < constants.size()){

View File

@ -11,9 +11,9 @@ import java.util.List;
import java.util.Map;
import com.mysema.query.sql.Configuration;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.Path;
import com.mysema.query.types.expr.Param;
/**
* AbstractSQLClause is a superclass for SQL based DMLClause implementations

View File

@ -26,8 +26,8 @@ import com.mysema.query.sql.Configuration;
import com.mysema.query.sql.RelationalPath;
import com.mysema.query.sql.SQLSerializer;
import com.mysema.query.sql.SQLTemplates;
import com.mysema.query.types.Param;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
/**
* SQLDeleteClause defines a DELETE clause

View File

@ -34,9 +34,9 @@ import com.mysema.query.sql.RelationalPath;
import com.mysema.query.sql.SQLSerializer;
import com.mysema.query.sql.SQLTemplates;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Param;
import com.mysema.query.types.Path;
import com.mysema.query.types.SubQueryExpression;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.SimpleConstant;
import com.mysema.query.types.path.NullExpr;
import com.mysema.util.ResultSetAdapter;

View File

@ -33,9 +33,9 @@ import com.mysema.query.sql.SQLSerializer;
import com.mysema.query.sql.SQLTemplates;
import com.mysema.query.types.Expression;
import com.mysema.query.types.ExpressionUtils;
import com.mysema.query.types.Param;
import com.mysema.query.types.Path;
import com.mysema.query.types.SubQueryExpression;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.SimpleConstant;
import com.mysema.query.types.path.NullExpr;

View File

@ -30,9 +30,9 @@ import com.mysema.query.sql.Configuration;
import com.mysema.query.sql.RelationalPath;
import com.mysema.query.sql.SQLSerializer;
import com.mysema.query.sql.SQLTemplates;
import com.mysema.query.types.Param;
import com.mysema.query.types.Path;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.path.NullExpr;
/**

View File

@ -44,7 +44,6 @@ import com.mysema.query.sql.domain.IdName;
import com.mysema.query.sql.domain.QEmployee;
import com.mysema.query.sql.domain.QIdName;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Param;
import com.mysema.query.types.ParamNotSetException;
import com.mysema.query.types.Path;
import com.mysema.query.types.SubQueryExpression;
@ -53,6 +52,7 @@ import com.mysema.query.types.expr.ArrayConstructorExpression;
import com.mysema.query.types.expr.BooleanExpression;
import com.mysema.query.types.expr.ConstructorExpression;
import com.mysema.query.types.expr.NumberExpression;
import com.mysema.query.types.expr.Param;
import com.mysema.query.types.expr.QTuple;
import com.mysema.query.types.path.NumberPath;
import com.mysema.query.types.path.PathBuilder;