diff --git a/querydsl-core/src/main/java/com/mysema/query/types/custom/CBoolean.java b/querydsl-core/src/main/java/com/mysema/query/types/custom/CBoolean.java index ad75cc1c2..e9ccc2a64 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/custom/CBoolean.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/custom/CBoolean.java @@ -25,13 +25,10 @@ public class CBoolean extends EBoolean implements Custom { return new CBoolean(args, template); } - private final List> args; - - private final Template template; + private final Custom customMixin; public CBoolean(List> args, Template template){ - this.args = args; - this.template = template; + customMixin = new CustomMixin(args, template); } @Override @@ -41,16 +38,16 @@ public class CBoolean extends EBoolean implements Custom { @Override public Expr getArg(int index) { - return getArgs().get(index); + return customMixin.getArg(index); } @Override public List> getArgs() { - return args; + return customMixin.getArgs(); } @Override public Template getTemplate() { - return template; + return customMixin.getTemplate(); } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/custom/CComparable.java b/querydsl-core/src/main/java/com/mysema/query/types/custom/CComparable.java index cfb6e4276..bf5411f35 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/custom/CComparable.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/custom/CComparable.java @@ -26,14 +26,11 @@ public class CComparable> extends EComparable impleme return new CComparable(type, args, template); } - private final List> args; - - private final Template template; + private final Custom customMixin; public CComparable(Class type, List> args, Template template) { super(type); - this.args = args; - this.template = template; + customMixin = new CustomMixin(args, template); } @Override @@ -43,16 +40,17 @@ public class CComparable> extends EComparable impleme @Override public Expr getArg(int index) { - return getArgs().get(index); + return customMixin.getArg(index); } @Override public List> getArgs() { - return args; + return customMixin.getArgs(); } - + @Override public Template getTemplate() { - return template; + return customMixin.getTemplate(); } + } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/custom/CNumber.java b/querydsl-core/src/main/java/com/mysema/query/types/custom/CNumber.java index 5fe986bac..889eb6136 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/custom/CNumber.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/custom/CNumber.java @@ -26,14 +26,11 @@ public class CNumber> extends ENumber implem return new CNumber(type, args, template); } - private final List> args; - - private final Template template; + private final Custom customMixin; public CNumber(Class type, List> args, Template template) { super(type); - this.args = args; - this.template = template; + customMixin = new CustomMixin(args, template); } @Override @@ -43,16 +40,16 @@ public class CNumber> extends ENumber implem @Override public Expr getArg(int index) { - return getArgs().get(index); + return customMixin.getArg(index); } @Override public List> getArgs() { - return args; + return customMixin.getArgs(); } - + @Override public Template getTemplate() { - return template; + return customMixin.getTemplate(); } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/custom/CSimple.java b/querydsl-core/src/main/java/com/mysema/query/types/custom/CSimple.java index be80f7437..cdd512b8c 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/custom/CSimple.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/custom/CSimple.java @@ -25,14 +25,11 @@ public class CSimple extends Expr implements Custom { return new CSimple(type, args, template); } - private final List> args; - - private final Template template; + private final Custom customMixin; public CSimple(Class type, List> args, Template template) { super(type); - this.args = args; - this.template = template; + customMixin = new CustomMixin(args, template); } @Override @@ -42,16 +39,16 @@ public class CSimple extends Expr implements Custom { @Override public Expr getArg(int index) { - return getArgs().get(index); + return customMixin.getArg(index); } @Override public List> getArgs() { - return args; + return customMixin.getArgs(); } - + @Override public Template getTemplate() { - return template; + return customMixin.getTemplate(); } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/custom/CString.java b/querydsl-core/src/main/java/com/mysema/query/types/custom/CString.java index f2fd20dd2..9b2d8441c 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/custom/CString.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/custom/CString.java @@ -25,13 +25,10 @@ public class CString extends EString implements Custom { return new CString(args, template); } - private final List> args; - - private final Template template; + private final Custom customMixin; public CString(List> args, Template template){ - this.args = args; - this.template = template; + customMixin = new CustomMixin(args, template); } @Override @@ -41,16 +38,16 @@ public class CString extends EString implements Custom { @Override public Expr getArg(int index) { - return getArgs().get(index); + return customMixin.getArg(index); } @Override public List> getArgs() { - return args; + return customMixin.getArgs(); } - + @Override public Template getTemplate() { - return template; + return customMixin.getTemplate(); } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/custom/CustomMixin.java b/querydsl-core/src/main/java/com/mysema/query/types/custom/CustomMixin.java new file mode 100644 index 000000000..e4bbb82cd --- /dev/null +++ b/querydsl-core/src/main/java/com/mysema/query/types/custom/CustomMixin.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2009 Mysema Ltd. + * All rights reserved. + * + */ +package com.mysema.query.types.custom; + +import java.util.List; + +import com.mysema.query.types.Template; +import com.mysema.query.types.expr.Expr; + +/** + * @author tiwe + * + * @param + */ +class CustomMixin implements Custom { + + private final List> args; + + private final Template template; + + public CustomMixin(List> args, Template template){ + this.args = args; + this.template = template; + } + + @Override + public Expr getArg(int index) { + return getArgs().get(index); + } + + @Override + public List> getArgs() { + return args; + } + + @Override + public Template getTemplate() { + return template; + } + +}