com.mysema.query.types.Operation类的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(116)

本文整理了Java中com.mysema.query.types.Operation类的一些代码示例,展示了Operation类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Operation类的具体详情如下:
包路径:com.mysema.query.types.Operation
类名称:Operation

Operation介绍

[英]Operation represents an operation with operator and arguments
[中]操作表示带有运算符和参数的操作

代码示例

代码示例来源:origin: com.mysema.querydsl/querydsl-lucene

  1. private Path<?> getPath(Expression<?> leftHandSide) {
  2. if (leftHandSide instanceof Path<?>) {
  3. return (Path<?>)leftHandSide;
  4. } else if (leftHandSide instanceof Operation<?>) {
  5. Operation<?> operation = (Operation<?>) leftHandSide;
  6. if (operation.getOperator() == Ops.LOWER || operation.getOperator() == Ops.UPPER) {
  7. return (Path<?>)operation.getArg(0);
  8. }
  9. }
  10. throw new IllegalArgumentException("Unable to transform " + leftHandSide + " to path");
  11. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @Override
  2. public Set<Expression<?>> visit(Operation<?> expr, Set<Expression<?>> known) {
  3. if (expr.getOperator() == Ops.ALIAS) {
  4. known = add(known, expr.getArg(1));
  5. }
  6. for (Expression<?> arg : expr.getArgs()) {
  7. known = arg.accept(this, known);
  8. }
  9. return known;
  10. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @SuppressWarnings("unchecked")
  2. @Override
  3. public Expression<?> visit(Operation<?> expr, Context context) {
  4. final Expression<?>[] args = new Expression<?>[expr.getArgs().size()];
  5. for (int i = 0; i < args.length; i++) {
  6. Context c = new Context();
  7. args[i] = expr.getArg(i).accept(this, c);
  8. context.add(c);
  9. }
  10. if (context.replace) {
  11. if (expr.getType().equals(Boolean.class)) {
  12. Predicate predicate = new PredicateOperation((Operator)expr.getOperator(), ImmutableList.copyOf(args));
  13. return !context.paths.isEmpty() ? exists(context, predicate) : predicate;
  14. } else {
  15. return new OperationImpl(expr.getType(), expr.getOperator(), ImmutableList.copyOf(args));
  16. }
  17. } else {
  18. return expr;
  19. }
  20. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @Override
  2. public Void visit(Operation<?> expr, Void context) {
  3. visitOperation(expr.getType(), expr.getOperator(), expr.getArgs());
  4. return null;
  5. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @Override
  2. public Integer visit(Operation<?> expr, Void context) {
  3. int result = expr.getOperator().hashCode();
  4. return 31 * result + expr.getArgs().hashCode();
  5. }

代码示例来源:origin: com.mysema.rdf/rdfbean-core

  1. @Override
  2. public boolean apply(Bindings bindings) {
  3. return Objects.equal(
  4. expr.getArg(0).accept(QueryRDFVisitor.this, bindings),
  5. expr.getArg(1).accept(QueryRDFVisitor.this, bindings));
  6. }
  7. };

代码示例来源:origin: com.mysema.querydsl/querydsl-lucene

  1. private void verifyArguments(Operation<?> operation) {
  2. List<Expression<?>> arguments = operation.getArgs();
  3. for (int i = 1; i < arguments.size(); ++i) {
  4. if (!(arguments.get(i) instanceof Constant<?>)
  5. && !(arguments.get(i) instanceof ParamExpression<?>)
  6. && !(arguments.get(i) instanceof PhraseElement)
  7. && !(arguments.get(i) instanceof TermElement)) {
  8. throw new IllegalArgumentException("operand was of unsupported type "
  9. + arguments.get(i).getClass().getName());
  10. }
  11. }
  12. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. final Expression<?> expr = (Expression<?>) rv;
  2. if (precedence > -1 && expr instanceof Operation) {
  3. Operator op = ((Operation<?>) expr).getOperator();
  4. int opPrecedence = templates.getPrecedence(op);
  5. if (precedence < opPrecedence) {

代码示例来源:origin: com.mysema.rdf/rdfbean-core

  1. private Predicate<Bindings> createBoundPredicate(final Operation<?> expr, final Operator<?> op) {
  2. final String key = getKey(expr.getArg(0));
  3. return new Predicate<Bindings>() {
  4. @Override
  5. public boolean apply(Bindings bindings) {
  6. boolean rv = bindings.get(key) != null;
  7. return op == Ops.IS_NOT_NULL ? rv : !rv;
  8. }
  9. };
  10. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @Override
  2. public final boolean equals(Object o) {
  3. if (o == this) {
  4. return true;
  5. } else if (o instanceof Operation<?>) {
  6. Operation<?> op = (Operation<?>)o;
  7. return op.getOperator() == operator
  8. && op.getArgs().equals(args)
  9. && op.getType().equals(getType());
  10. } else {
  11. return false;
  12. }
  13. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @Override
  2. public String visit(Operation<?> o, Templates templates) {
  3. final Template template = templates.getTemplate(o.getOperator());
  4. if (template != null) {
  5. final int precedence = templates.getPrecedence(o.getOperator());
  6. final StringBuilder builder = new StringBuilder();
  7. for (Template.Element element : template.getElements()) {
  8. final Object rv = element.convert(o.getArgs());
  9. if (rv instanceof Expression) {
  10. if (precedence > -1 && rv instanceof Operation) {
  11. if (precedence < templates.getPrecedence(((Operation<?>)rv).getOperator())) {
  12. builder.append("(");
  13. builder.append(((Expression)rv).accept(this, templates));
  14. builder.append(")");
  15. continue;
  16. }
  17. }
  18. builder.append(((Expression)rv).accept(this, templates));
  19. } else {
  20. builder.append(rv.toString());
  21. }
  22. }
  23. return builder.toString();
  24. } else {
  25. return "unknown operation with operator " + o.getOperator().getId() + " and args " + o.getArgs();
  26. }
  27. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @Override
  2. public Void visit(Operation<?> expr, List<Path<?>> paths) {
  3. visit(expr.getArgs(), paths);
  4. return null;
  5. }

代码示例来源:origin: com.mysema.rdf/rdfbean-core

  1. private List<Expression<?>> transformList(Expression<?> expr, List<Expression<?>> elements) {
  2. if (expr instanceof Operation<?> && ((Operation<?>) expr).getOperator() == Ops.LIST) {
  3. Operation<?> list = (Operation<?>) expr;
  4. transformList(list.getArg(0), elements);
  5. elements.add(list.getArg(1));
  6. } else {
  7. elements.add(expr);
  8. }
  9. return elements;
  10. }

代码示例来源:origin: com.mysema.rdf/rdfbean-sesame

  1. @SuppressWarnings("unchecked")
  2. @Override
  3. public ValueExpr visit(Operation<?> expr, QueryMetadata md) {
  4. Operator<?> op = expr.getOperator();
  5. if (op == Ops.AND){
  6. return new And(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md));
  7. }else if (op == Ops.OR){
  8. return new Or(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md));
  9. }else if (op == Ops.IN){
  10. for (Object o : ((Constant<Collection>)expr.getArg(1)).getConstant()) {
  11. builder.or(ExpressionUtils.eqConst((Expression)expr.getArg(0), o));
  12. return new Not(toValue(expr.getArg(0), md));
  13. }else if (COMPARE_OPS.containsKey(op)){
  14. if (expr.getArg(1) instanceof SubQueryExpression<?>){
  15. return new CompareAll(toValue(expr.getArg(0), md), toTuple(expr.getArg(1), md), COMPARE_OPS.get(op));
  16. }else{
  17. return new Compare(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md), COMPARE_OPS.get(op));
  18. return new MathExpr(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md), MATH_OPS.get(op));
  19. }else if (op == Ops.NEGATE){
  20. return new MathExpr(toValue(expr.getArg(0), md), toValue(new ConstantImpl<LIT>(new LIT("-1", XSD.intType)), md), MathOp.MULTIPLY);
  21. }else if (op == Ops.MATCHES){
  22. return new Regex(new Str(toValue(expr.getArg(0), md)), new Str(toValue(expr.getArg(1), md)), null);
  23. }else if (op == Ops.MATCHES_IC){
  24. return new Regex(new Str(toValue(expr.getArg(0), md)), new Str(toValue(expr.getArg(1), md)), CASE_INSENSITIVE);
  25. }else if (op == Ops.STRING_IS_EMPTY){
  26. return new Regex(new Str(toValue(expr.getArg(0), md)), "", false);
  27. }else if (op == Ops.IS_NULL){

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @SuppressWarnings("rawtypes")
  2. @Override
  3. public Expression<?> visit(Operation<?> expr, Context context) {
  4. Expression<?>[] args = new Expression<?>[expr.getArgs().size()];
  5. for (int i = 0; i < args.length; i++) {
  6. Context c = new Context();
  7. args[i] = expr.getArg(i).accept(this, c);
  8. context.add(c);
  9. }
  10. if (context.replace) {
  11. if (expr.getType().equals(Boolean.class)) {
  12. Predicate predicate = new PredicateOperation((Operator<Boolean>)expr.getOperator(), ImmutableList.copyOf(args));
  13. return !context.paths.isEmpty() ? exists(context, predicate) : predicate;
  14. } else {
  15. return new OperationImpl(expr.getType(), expr.getOperator(), ImmutableList.copyOf(args));
  16. }
  17. } else {
  18. return expr;
  19. }
  20. }

代码示例来源:origin: com.mysema.querydsl/querydsl-mongodb

  1. protected boolean isReference(Operation<?> expr, int exprIndex) {
  2. Expression<?> arg = expr.getArg(exprIndex);
  3. if (arg instanceof Path) {
  4. return isReference((Path<?>) arg);
  5. } else {
  6. return false;
  7. }
  8. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. @Override
  2. public Expression<?> visit(Operation<?> expr, @Nullable Void context) {
  3. ImmutableList<Expression<?>> args = visit(expr.getArgs());
  4. if (args.equals(expr.getArgs())) {
  5. return expr;
  6. } else if (expr instanceof Predicate) {
  7. return new PredicateOperation((Operator)expr.getOperator(), args);
  8. } else {
  9. return new OperationImpl(expr.getType(), expr.getOperator(), args);
  10. }
  11. }

代码示例来源:origin: com.mysema.rdf/rdfbean-core

  1. @Override
  2. public Void visit(Operation<?> expr, Void context) {
  3. handle(expr.getArgs());
  4. return null;
  5. }

代码示例来源:origin: com.mysema.querydsl/querydsl-core

  1. private static ImmutableMap<Expression<?>, Integer> createBindings(List<Expression<?>> exprs) {
  2. Map<Expression<?>, Integer> map = Maps.newHashMap();
  3. for (int i = 0; i < exprs.size(); i++) {
  4. Expression<?> e = exprs.get(i);
  5. if (e instanceof Operation && ((Operation<?>)e).getOperator() == Ops.ALIAS) {
  6. map.put(((Operation<?>)e).getArg(1), i);
  7. }
  8. map.put(e, i);
  9. }
  10. return ImmutableMap.copyOf(map);
  11. }

代码示例来源:origin: com.mysema.rdf/rdfbean-sesame3

  1. @SuppressWarnings("unchecked")
  2. @Override
  3. public ValueExpr visit(Operation<?> expr, QueryMetadata md) {
  4. Operator<?> op = expr.getOperator();
  5. if (op == Ops.AND) {
  6. return new And(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md));
  7. } else if (op == Ops.OR) {
  8. return new Or(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md));
  9. } else if (op == Ops.IN) {
  10. for (Object o : ((Constant<Collection>) expr.getArg(1)).getConstant()) {
  11. builder.or(ExpressionUtils.eqConst((Expression) expr.getArg(0), o));
  12. return new Not(toValue(expr.getArg(0), md));
  13. } else if (COMPARE_OPS.containsKey(op)) {
  14. if (expr.getArg(1) instanceof SubQueryExpression<?>) {
  15. return new CompareAll(toValue(expr.getArg(0), md), toTuple(expr.getArg(1), md), COMPARE_OPS.get(op));
  16. } else {
  17. return new Compare(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md), COMPARE_OPS.get(op));
  18. return new MathExpr(toValue(expr.getArg(0), md), toValue(expr.getArg(1), md), MATH_OPS.get(op));
  19. } else if (op == Ops.NEGATE) {
  20. return new MathExpr(toValue(expr.getArg(0), md), toValue(new ConstantImpl<LIT>(new LIT("-1", XSD.intType)), md), MathOp.MULTIPLY);
  21. } else if (op == Ops.MATCHES) {
  22. return new Regex(new Str(toValue(expr.getArg(0), md)), new Str(toValue(expr.getArg(1), md)), null);
  23. } else if (op == Ops.MATCHES_IC) {
  24. return new Regex(new Str(toValue(expr.getArg(0), md)), new Str(toValue(expr.getArg(1), md)), CASE_INSENSITIVE);
  25. } else if (op == Ops.STRING_IS_EMPTY) {
  26. return new Regex(new Str(toValue(expr.getArg(0), md)), "", false);
  27. } else if (op == Ops.IS_NULL) {

相关文章