This commit is contained in:
Timo Westkämper 2010-09-19 09:49:30 +00:00
parent 9387eb4d1d
commit 145dc99cd4
15 changed files with 83 additions and 74 deletions

View File

@ -10,7 +10,7 @@ import java.io.Serializable;
import net.jcip.annotations.Immutable;
import com.mysema.query.types.Expression;
import com.mysema.query.types.template.StringTemplate;
import com.mysema.query.types.TemplateExpressionImpl;
/**
* JoinFlag defines a join related flag using an Expr instance
@ -26,7 +26,7 @@ public class JoinFlag implements Serializable{
private final Expression<?> flag;
public JoinFlag(String flag) {
this.flag = StringTemplate.create(flag);
this.flag = TemplateExpressionImpl.create(flag);
}
public JoinFlag(Expression<?> flag) {

View File

@ -11,7 +11,7 @@ import net.jcip.annotations.Immutable;
import com.mysema.commons.lang.Assert;
import com.mysema.query.types.Expression;
import com.mysema.query.types.template.StringTemplate;
import com.mysema.query.types.TemplateExpressionImpl;
/**
* Defines a positioned flag in a query for customization of query serialization
@ -59,7 +59,7 @@ public class QueryFlag implements Serializable{
private final Expression<?> flag;
public QueryFlag(Position position, String flag) {
this(position, StringTemplate.create(flag));
this(position, TemplateExpressionImpl.create(flag));
}
public QueryFlag(Position position, Expression<?> flag) {

View File

@ -12,7 +12,7 @@ import javax.annotation.Nullable;
import com.mysema.util.ReflectionUtils;
/**
* PathImpl defines a mixin version of the Path interface which can be used
* PathImpl defines a default implementation of the Path interface which can be used
* as a component and target in actual Path implementations
*
* @author tiwe

View File

@ -8,7 +8,7 @@ package com.mysema.query.types;
import java.util.List;
/**
* Custom provides base types for custom expressions with integrated
* TemplateExpression provides base types for custom expressions with integrated
* serialization templates
*
* @author tiwe

View File

@ -5,17 +5,18 @@
*/
package com.mysema.query.types;
import java.util.Arrays;
import java.util.List;
/**
* Mixin implementation of the TemplateExpression interface
* Default implementation of the TemplateExpression interface
*
* @author tiwe
*
* @param <T>
*/
public class TemplateImpl<T> extends ExpressionBase<T> implements TemplateExpression<T> {
public class TemplateExpressionImpl<T> extends ExpressionBase<T> implements TemplateExpression<T> {
private static final long serialVersionUID = 6951623726800809083L;
@ -23,7 +24,15 @@ public class TemplateImpl<T> extends ExpressionBase<T> implements TemplateExpres
private final Template template;
public TemplateImpl(Class<? extends T> type, List<Expression<?>> args, Template template){
public static Expression<String> create(String template, Expression<?>... args){
return create(TemplateFactory.DEFAULT.create(template), args);
}
public static Expression<String> create(Template template, Expression<?>... args){
return new TemplateExpressionImpl<String>(String.class, Arrays.<Expression<?>>asList(args), template);
}
public TemplateExpressionImpl(Class<? extends T> type, List<Expression<?>> args, Template template){
super(type);
this.args = args;
this.template = template;

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.BooleanExpression;
@ -34,10 +34,10 @@ public class BooleanTemplate extends BooleanExpression implements TemplateExpres
return new BooleanTemplate(template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<Boolean> customMixin;
private final TemplateExpression<Boolean> templateMixin;
public BooleanTemplate(Template template, List<Expression<?>> args){
customMixin = new TemplateImpl<Boolean>(Boolean.class, args, template);
templateMixin = new TemplateExpressionImpl<Boolean>(Boolean.class, args, template);
}
@Override
@ -47,22 +47,22 @@ public class BooleanTemplate extends BooleanExpression implements TemplateExpres
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.ComparableExpression;
@ -35,11 +35,11 @@ public class ComparableTemplate<T extends Comparable<?>> extends ComparableExpre
return new ComparableTemplate<T>(type, template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<T> customMixin;
private final TemplateExpression<T> templateMixin;
public ComparableTemplate(Class<T> type, Template template, List<Expression<?>> args) {
super(type);
customMixin = new TemplateImpl<T>(type, args, template);
templateMixin = new TemplateExpressionImpl<T>(type, args, template);
}
@Override
@ -49,22 +49,22 @@ public class ComparableTemplate<T extends Comparable<?>> extends ComparableExpre
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.DateExpression;
@ -33,11 +33,11 @@ public class DateTemplate<T extends Comparable<?>> extends DateExpression<T> imp
return new DateTemplate<T>(type, template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<T> customMixin;
private final TemplateExpression<T> templateMixin;
public DateTemplate(Class<T> type, Template template, List<Expression<?>> args) {
super(type);
customMixin = new TemplateImpl<T>(type, args, template);
templateMixin = new TemplateExpressionImpl<T>(type, args, template);
}
@Override
@ -47,22 +47,22 @@ public class DateTemplate<T extends Comparable<?>> extends DateExpression<T> imp
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.DateTimeExpression;
@ -33,11 +33,11 @@ public class DateTimeTemplate<T extends Comparable<?>> extends DateTimeExpressio
return new DateTimeTemplate<T>(type, template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<T> customMixin;
private final TemplateExpression<T> templateMixin;
public DateTimeTemplate(Class<T> type, Template template, List<Expression<?>> args) {
super(type);
customMixin = new TemplateImpl<T>(type, args, template);
templateMixin = new TemplateExpressionImpl<T>(type, args, template);
}
@Override
@ -47,22 +47,22 @@ public class DateTimeTemplate<T extends Comparable<?>> extends DateTimeExpressio
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.EnumExpression;
@ -35,11 +35,11 @@ public class EnumTemplate<T extends Enum<T>> extends EnumExpression<T> implement
return new EnumTemplate<T>(type, template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<T> customMixin;
private final TemplateExpression<T> templateMixin;
public EnumTemplate(Class<T> type, Template template, List<Expression<?>> args) {
super(type);
customMixin = new TemplateImpl<T>(type, args, template);
templateMixin = new TemplateExpressionImpl<T>(type, args, template);
}
@Override
@ -49,22 +49,22 @@ public class EnumTemplate<T extends Enum<T>> extends EnumExpression<T> implement
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.NumberExpression;
@ -35,11 +35,11 @@ public class NumberTemplate<T extends Number & Comparable<?>> extends NumberExpr
return new NumberTemplate<T>(type, template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<T> customMixin;
private final TemplateExpression<T> templateMixin;
public NumberTemplate(Class<T> type, Template template, List<Expression<?>> args) {
super(type);
customMixin = new TemplateImpl<T>(type, args, template);
templateMixin = new TemplateExpressionImpl<T>(type, args, template);
}
@Override
@ -49,22 +49,22 @@ public class NumberTemplate<T extends Number & Comparable<?>> extends NumberExpr
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.SimpleExpression;
@ -35,11 +35,11 @@ public class SimpleTemplate<T> extends SimpleExpression<T> implements TemplateEx
return new SimpleTemplate<T>(type, template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<T> customMixin;
private final TemplateExpression<T> templateMixin;
public SimpleTemplate(Class<? extends T> type, Template template, List<Expression<?>> args) {
super(type);
customMixin = new TemplateImpl<T>(type, args, template);
templateMixin = new TemplateExpressionImpl<T>(type, args, template);
}
@Override
@ -49,22 +49,22 @@ public class SimpleTemplate<T> extends SimpleExpression<T> implements TemplateEx
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.StringExpression;
@ -34,10 +34,10 @@ public class StringTemplate extends StringExpression implements TemplateExpressi
return new StringTemplate(template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<String> customMixin;
private final TemplateExpression<String> templateMixin;
public StringTemplate(Template template, List<Expression<?>> args){
customMixin = new TemplateImpl<String>(String.class, args, template);
templateMixin = new TemplateExpressionImpl<String>(String.class, args, template);
}
@Override
@ -47,22 +47,22 @@ public class StringTemplate extends StringExpression implements TemplateExpressi
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -12,7 +12,7 @@ import com.mysema.query.types.Expression;
import com.mysema.query.types.Template;
import com.mysema.query.types.TemplateExpression;
import com.mysema.query.types.TemplateFactory;
import com.mysema.query.types.TemplateImpl;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.expr.TimeExpression;
@ -33,11 +33,11 @@ public class TimeTemplate<T extends Comparable<?>> extends TimeExpression<T> imp
return new TimeTemplate<T>(type, template, Arrays.<Expression<?>>asList(args));
}
private final TemplateExpression<T> customMixin;
private final TemplateExpression<T> templateMixin;
public TimeTemplate(Class<T> type, Template template, List<Expression<?>> args) {
super(type);
customMixin = new TemplateImpl<T>(type, args, template);
templateMixin = new TemplateExpressionImpl<T>(type, args, template);
}
@Override
@ -47,22 +47,22 @@ public class TimeTemplate<T extends Comparable<?>> extends TimeExpression<T> imp
@Override
public Expression<?> getArg(int index) {
return customMixin.getArg(index);
return templateMixin.getArg(index);
}
@Override
public List<Expression<?>> getArgs() {
return customMixin.getArgs();
return templateMixin.getArgs();
}
@Override
public Template getTemplate() {
return customMixin.getTemplate();
return templateMixin.getTemplate();
}
@Override
public boolean equals(Object o){
return customMixin.equals(o);
return templateMixin.equals(o);
}
@Override

View File

@ -11,9 +11,9 @@ import org.junit.Test;
import com.mysema.query.types.ConstantImpl;
import com.mysema.query.types.JavaTemplates;
import com.mysema.query.types.TemplateExpressionImpl;
import com.mysema.query.types.path.PathBuilder;
import com.mysema.query.types.path.StringPath;
import com.mysema.query.types.template.StringTemplate;
public class SerializerBaseTest {
@ -30,7 +30,7 @@ public class SerializerBaseTest {
// constant
serializer.handle(ConstantImpl.create(""));
// custom
serializer.handle(StringTemplate.create("xxx", ConstantImpl.create("")));
serializer.handle(TemplateExpressionImpl.create("xxx", ConstantImpl.create("")));
}
}