Beispiel #1
0
  public boolean isBlocking() {
    for (OpFilter filter : filters) {
      if (filter.isBlocking()) return true;
    }

    return false;
  }
Beispiel #2
0
 /** rewrites the subop of filter. */
 @Override
 public void visit(final OpFilter opFilter) {
   if (LOG.isDebugEnabled()) {
     LOG.debug("Starting visiting OpFilter");
   }
   addOp(OpFilter.filterBy(opFilter.getExprs(), rewriteOp1(opFilter)));
 }
Beispiel #3
0
  public boolean canCacheResult() {
    for (OpFilter filter : filters) {
      if (!filter.canCacheResult()) return false;
    }

    return true;
  }
Beispiel #4
0
  @Override
  public void visit(final OpBGP opBGP) throws ReadDeniedException, AuthenticationRequiredException {
    if (LOG.isDebugEnabled()) {
      LOG.debug("Starting visiting OpBGP");
    }
    Object principal = securityEvaluator.getPrincipal();
    if (!securityEvaluator.evaluate(principal, Action.Read, graphIRI)) {
      if (silentFail) {
        return;
      } else {
        throw new ReadDeniedException(SecuredItem.Util.modelPermissionMsg(graphIRI));
      }
    }

    // if the user can read any triple just add the opBGP
    if (securityEvaluator.evaluate(principal, Action.Read, graphIRI, Triple.ANY)) {
      addOp(opBGP);
    } else {
      // add security filtering to the resulting triples
      final List<Triple> newBGP = new ArrayList<>();
      final List<Node> variables = new ArrayList<>();
      // register all variables
      for (final Triple t : opBGP.getPattern().getList()) {
        newBGP.add(registerBGPTriple(t, variables));
      }
      // create the security function.
      final SecuredFunction secFunc =
          new SecuredFunction(graphIRI, securityEvaluator, variables, newBGP);
      // create the filter
      Op filter = OpFilter.filter(secFunc, new OpBGP(BasicPattern.wrap(newBGP)));
      // add the filter
      addOp(filter);
    }
  }
Beispiel #5
0
 public void visit(OpFilter opFilter) {
   // JoinPlanner.setFilterVars();
   Iterator<Expr> it = opFilter.getExprs().iterator();
   while (it.hasNext()) {
     Expr e = it.next();
     Iterator<Expr> a = e.getFunction().getArgs().iterator();
     System.out.println(e.getFunction().getOpName());
     while (a.hasNext()) {
       Expr temp = a.next();
       if (temp.isVariable()) JoinPlaner.filter(temp.toString(), e.getFunction());
     }
   }
 }
Beispiel #6
0
 public void removeListener(IOpFilterListener listener) {
   for (OpFilter filter : filters) {
     filter.removeListener(listener);
   }
 }
Beispiel #7
0
 public void addListener(IOpFilterListener listener) {
   for (OpFilter filter : filters) {
     filter.addListener(listener);
   }
 }
Beispiel #8
0
 public boolean accept(Object object) {
   for (OpFilter filter : filters) {
     if (filter.accept(object)) return true;
   }
   return false;
 }
 public void visit(OpFilter opFilter) {
   Table table = eval(opFilter.getSubOp());
   table = evaluator.filter(opFilter.getExprs(), table);
   push(table);
 }
 /**
  * Determines whether the current operation can operate on the object.
  *
  * @return true if object can be used as the operation input.
  */
 public boolean isValid(Object obj) {
   return !this.loadingError
       && AdapterUtil.instance.canAdaptTo(targetClass, obj)
       && filter.accept(obj);
 }