Ejemplo n.º 1
0
  private void buildLibraries(
      Predicate<String> predicate, IPath outputLocation, IProgressMonitor monitor)
      throws CoreException {
    IFolder binFolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(outputLocation);
    binFolder.refreshLocal(IResource.DEPTH_ONE, null);

    java.util.List<String> toCopy = Helper.getLibraryEntries(getProject());

    monitor.beginTask(Messages.Builder_copy_libraries, toCopy.size());
    for (String path : toCopy) {
      if (predicate == null || predicate.accept(path)) {
        Helper.copyLibraryToBin(getProject(), path);
      }
      monitor.worked(1);
    }
    monitor.done();
  }
Ejemplo n.º 2
0
 public void visitLocationStep(LocationStep locationStep) {
   super.visitLocationStep(locationStep);
   boolean optimize = false;
   // only location steps with predicates can be optimized:
   if (locationStep.hasPredicates()) {
     List preds = locationStep.getPredicates();
     // walk through the predicates attached to the current location step.
     // try to find a predicate containing an expression which is an instance
     // of Optimizable.
     for (Iterator i = preds.iterator(); i.hasNext(); ) {
       Predicate pred = (Predicate) i.next();
       FindOptimizable find = new FindOptimizable();
       pred.accept(find);
       List list = find.getOptimizables();
       if (list.size() > 0 && canOptimize(list)) {
         optimize = true;
         break;
       }
     }
   }
   if (optimize) {
     // we found at least one Optimizable. Rewrite the whole expression and
     // enclose it in an (#exist:optimize#) pragma.
     Expression parent = locationStep.getParent();
     if (!(parent instanceof PathExpr)) {
       LOG.warn("Parent expression of step is not a PathExpr: " + parent);
       return;
     }
     if (LOG.isTraceEnabled())
       LOG.trace("Rewriting expression: " + ExpressionDumper.dump(locationStep));
     hasOptimized = true;
     PathExpr path = (PathExpr) parent;
     try {
       // Create the pragma
       ExtensionExpression extension = new ExtensionExpression(context);
       extension.addPragma(new Optimize(context, Optimize.OPTIMIZE_PRAGMA, null, false));
       extension.setExpression(locationStep);
       // Replace the old expression with the pragma
       path.replaceExpression(locationStep, extension);
     } catch (XPathException e) {
       LOG.warn("Failed to optimize expression: " + locationStep + ": " + e.getMessage(), e);
     }
   }
 }
Ejemplo n.º 3
0
    @Override
    public Return where(Predicate predicate) {
      // Parse predicate
      query.whereExpression =
          predicate.accept(
              new Visitor<WhereExpression.BooleanExpression, WhereExpression.BooleanExpression>() {
                @Override
                public WhereExpression.BooleanExpression visit(
                    Constant<?> constant,
                    @Nullable WhereExpression.BooleanExpression booleanExpression) {
                  return null;
                }

                @Override
                public WhereExpression.BooleanExpression visit(
                    FactoryExpression<?> factoryExpression,
                    @Nullable WhereExpression.BooleanExpression booleanExpression) {
                  return null;
                }

                @Override
                public WhereExpression.BooleanExpression visit(
                    Operation<?> operation,
                    @Nullable WhereExpression.BooleanExpression booleanExpression) {
                  String id = operation.getOperator().getId();
                  if (id.equals(Ops.AND.getId())) {
                    return WhereExpression.and(
                        operation.getArg(0).accept(this, null),
                        operation.getArg(1).accept(this, null));
                  } else if (id.equals(Ops.OR.getId())) {
                    return WhereExpression.or(
                        operation.getArg(0).accept(this, null),
                        operation.getArg(1).accept(this, null));
                  } else if (id.equals(Ops.NOT.getId())) {
                    return WhereExpression.not(
                        (WhereExpression.PredicateExpression)
                            operation.getArg(0).accept(this, null));
                  } else if (id.equals(Ops.EQ_PRIMITIVE.getId())
                      || id.equals(Ops.EQ_OBJECT.getId())) {
                    return WhereExpression.eq(
                        operation.getArg(0).toString(), arg(operation.getArg(1)));
                  } else if (id.equals(Ops.NE_PRIMITIVE.getId())
                      || id.equals(Ops.NE_OBJECT.getId())) {
                    return WhereExpression.ne(
                        operation.getArg(0).toString(), arg(operation.getArg(1)));
                  } else if (id.equals(Ops.GT.getId())) {
                    return WhereExpression.gt(
                        operation.getArg(0).toString(), arg(operation.getArg(1)));
                  } else if (id.equals(Ops.LT.getId())) {
                    return WhereExpression.lt(
                        operation.getArg(0).toString(),
                        ((Constant) operation.getArg(1)).getConstant());
                  } else if (id.equals(Ops.GOE.getId())) {
                    return WhereExpression.gte(
                        operation.getArg(0).toString(), arg(operation.getArg(1)));
                  } else if (id.equals(Ops.LOE.getId())) {
                    return WhereExpression.lte(
                        operation.getArg(0).toString(), arg(operation.getArg(1)));
                  } else if (id.equals(Ops.EXISTS.getId())) {
                    return WhereExpression.exists(operation.getArg(0).toString());
                  } else if (id.equals(Ops.IS_NULL.getId())) {
                    return WhereExpression.isNull(operation.getArg(0).toString());
                  } else if (id.equals(Ops.IS_NOT_NULL.getId())) {
                    return WhereExpression.isNotNull(operation.getArg(0).toString());
                  } else
                    throw new IllegalArgumentException(
                        "Unknown operator:" + id + " in expression " + operation);
                }

                @Override
                public WhereExpression.BooleanExpression visit(
                    ParamExpression<?> paramExpression,
                    @Nullable WhereExpression.BooleanExpression booleanExpression) {
                  return null;
                }

                @Override
                public WhereExpression.BooleanExpression visit(
                    Path<?> path, @Nullable WhereExpression.BooleanExpression booleanExpression) {
                  return null;
                }

                @Override
                public WhereExpression.BooleanExpression visit(
                    SubQueryExpression<?> subQueryExpression,
                    @Nullable WhereExpression.BooleanExpression booleanExpression) {
                  return null;
                }

                @Override
                public WhereExpression.BooleanExpression visit(
                    TemplateExpression<?> templateExpression,
                    @Nullable WhereExpression.BooleanExpression booleanExpression) {
                  return null;
                }

                public Object arg(com.mysema.query.types.Expression expression) {
                  if (expression instanceof Constant) return ((Constant) expression).getConstant();
                  else if (expression instanceof ParamExpression)
                    return Expression.param(((ParamExpression) expression).getName());
                  else throw new IllegalArgumentException("Unknown argument type:" + expression);
                }
              },
              null);

      return this;
    }
Ejemplo n.º 4
0
 @Override
 public boolean accept(T t) throws IOException {
   return !predicate.accept(t);
 }