mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-30 21:08:30 +08:00
added OSimple for general operations
This commit is contained in:
parent
579f3caae3
commit
e2a105dcb4
@ -58,6 +58,10 @@ public abstract class AbstractVisitor<SubType extends AbstractVisitor<SubType>>
|
||||
visit((Operation<?, ?>) expr);
|
||||
}
|
||||
@Override
|
||||
protected void visit(Operation.OSimple<?,?> expr) {
|
||||
visit((Operation<?, ?>) expr);
|
||||
}
|
||||
@Override
|
||||
protected void visit(Operation.OString expr) {
|
||||
visit((Operation<?, ?>) expr);
|
||||
}
|
||||
|
||||
@ -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<OP,RT> {
|
||||
this.op = op;
|
||||
this.args = unmodifiableList(args);
|
||||
}
|
||||
|
||||
public OComparable(Op<OpType> op, Expr<?>... args){
|
||||
this(null, op, args);
|
||||
}
|
||||
public List<Expr<?>> getArgs() {return args;}
|
||||
public Op<OpType> getOperator() {return op;}
|
||||
}
|
||||
@ -82,7 +80,22 @@ public interface Operation<OP,RT> {
|
||||
public Op<OpType> getOperator() {return op;}
|
||||
}
|
||||
|
||||
// TODO : OSimple<OP,RT> extends ESimple implements Operation<OP,RT>
|
||||
public static class OSimple<OpType,D> extends ESimple<D> implements Operation<OpType,D> {
|
||||
private final List<Expr<?>> args;
|
||||
private final Op<OpType> op;
|
||||
public OSimple(Class<D> type, Op<OpType> op, Expr<?>... args){
|
||||
super(type);
|
||||
this.op = op;
|
||||
this.args = unmodifiableList(asList(args));
|
||||
}
|
||||
public OSimple(Class<D> type, Op<OpType> op, List<Expr<?>> args){
|
||||
super(type);
|
||||
this.op = op;
|
||||
this.args = unmodifiableList(args);
|
||||
}
|
||||
public List<Expr<?>> getArgs() {return args;}
|
||||
public Op<OpType> getOperator() {return op;}
|
||||
}
|
||||
|
||||
public static class OString extends EString implements Operation<String,String>{
|
||||
private final List<Expr<?>> args;
|
||||
|
||||
@ -89,6 +89,8 @@ public abstract class Visitor<T extends Visitor<T>> {
|
||||
|
||||
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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user