diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/types/AbstractVisitor.java b/querydsl-core/src/main/java/com/mysema/query/grammar/types/AbstractVisitor.java index 738947e11..ed2c2e1a4 100644 --- a/querydsl-core/src/main/java/com/mysema/query/grammar/types/AbstractVisitor.java +++ b/querydsl-core/src/main/java/com/mysema/query/grammar/types/AbstractVisitor.java @@ -58,6 +58,10 @@ public abstract class AbstractVisitor> visit((Operation) expr); } @Override + protected void visit(Operation.OSimple expr) { + visit((Operation) expr); + } + @Override protected void visit(Operation.OString expr) { visit((Operation) expr); } diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/types/Operation.java b/querydsl-core/src/main/java/com/mysema/query/grammar/types/Operation.java index 5f800f4e2..7f6e01511 100644 --- a/querydsl-core/src/main/java/com/mysema/query/grammar/types/Operation.java +++ b/querydsl-core/src/main/java/com/mysema/query/grammar/types/Operation.java @@ -5,14 +5,16 @@ */ package com.mysema.query.grammar.types; -import static java.util.Arrays.*; -import static java.util.Collections.*; +import static java.util.Arrays.asList; +import static java.util.Collections.unmodifiableList; + import java.util.List; import com.mysema.query.grammar.Ops.Op; import com.mysema.query.grammar.types.Expr.EBoolean; import com.mysema.query.grammar.types.Expr.EComparable; import com.mysema.query.grammar.types.Expr.ENumber; +import com.mysema.query.grammar.types.Expr.ESimple; import com.mysema.query.grammar.types.Expr.EString; @@ -57,10 +59,6 @@ public interface Operation { this.op = op; this.args = unmodifiableList(args); } - - public OComparable(Op op, Expr... args){ - this(null, op, args); - } public List> getArgs() {return args;} public Op getOperator() {return op;} } @@ -82,7 +80,22 @@ public interface Operation { public Op getOperator() {return op;} } - // TODO : OSimple extends ESimple implements Operation + public static class OSimple extends ESimple implements Operation { + private final List> args; + private final Op op; + public OSimple(Class type, Op op, Expr... args){ + super(type); + this.op = op; + this.args = unmodifiableList(asList(args)); + } + public OSimple(Class type, Op op, List> args){ + super(type); + this.op = op; + this.args = unmodifiableList(args); + } + public List> getArgs() {return args;} + public Op getOperator() {return op;} + } public static class OString extends EString implements Operation{ private final List> args; diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/types/Visitor.java b/querydsl-core/src/main/java/com/mysema/query/grammar/types/Visitor.java index ba46698fc..9ff0fb358 100644 --- a/querydsl-core/src/main/java/com/mysema/query/grammar/types/Visitor.java +++ b/querydsl-core/src/main/java/com/mysema/query/grammar/types/Visitor.java @@ -89,6 +89,8 @@ public abstract class Visitor> { protected abstract void visit(Operation.ONumber expr); + protected abstract void visit(Operation.OSimple expr); + protected abstract void visit(Operation.OString expr); protected abstract void visit(Operation.OStringArray expr);