Package lupos.engine.operators.singleinput.filter

Examples of lupos.engine.operators.singleinput.filter.Filter


    super();
  }

  @Override
  protected boolean checkPrecondition(final Map<String, BasicOperator> mso) {
    final Filter filter = (Filter) mso.get("filter");
    if (filter.getPrecedingOperators().size() > 1)
      return false;
    final AddBinding add1 = (AddBinding) mso.get("add1");
    if (add1.getPrecedingOperators().size() > 1)
      return false;
    final AddBinding add2 = (AddBinding) mso.get("add2");

    lupos.sparql1_1.Node filterNode = filter.getNodePointer();
    if (filterNode.jjtGetNumChildren() > 0) {
      filterNode = filterNode.jjtGetChild(0);

      // filter must be an unequality expression of 2 variables...
      if (filterNode instanceof lupos.sparql1_1.ASTNotEqualsNode) {
View Full Code Here


  @Override
  protected void init() {
    final AddBinding add1 = new AddBinding(null, null);
    final AddBinding add2 = new AddBinding(null, null);
    final Filter filter = new Filter();

    add1.setSucceedingOperator(new OperatorIDTuple(add2, 0));
    add2.setPrecedingOperator(add1);
    add2.setSucceedingOperator(new OperatorIDTuple(filter, 0));
    filter.setPrecedingOperator(add2);

    subGraphMap = new HashMap<BasicOperator, String>();
    subGraphMap.put(add1, "add1");
    subGraphMap.put(add2, "add2");
    subGraphMap.put(filter, "filter");
View Full Code Here

      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();

    final Filter filter = (Filter) mso.get("filter");

    // delete the filter operator
    final BasicOperator aboveFilter = filter.getPrecedingOperators().get(0);

    if (eliminateOnlyFilter) {
      deleted.add(filter);

      final List<OperatorIDTuple> list = new LinkedList<OperatorIDTuple>();
      list.addAll(filter.getSucceedingOperators());
      for (final OperatorIDTuple oid : list) {
        oid.getOperator().removePrecedingOperator(filter);
        oid.getOperator().getPrecedingOperators().addAll(
            filter.getPrecedingOperators());
        for (final BasicOperator precFilter : filter
            .getPrecedingOperators()) {
          precFilter.removeSucceedingOperator(filter);
          precFilter.addSucceedingOperator(new OperatorIDTuple(oid
              .getOperator(), oid.getId()));
        }
      }
    } else {
      filter.visit(new SimpleOperatorGraphVisitor() {
        boolean ignore = false;

        public Object visit(final BasicOperator basicOperator) {
          if (ignore || (basicOperator instanceof PatternMatcher)
              || (basicOperator instanceof Union))
View Full Code Here

      // check if Filter(Add.Var = Add.Constant) must be put to a join
      // operand in order to fulfill the join condition
      if (!bo.equals(add)
          && bo.getUnionVariables().contains(add.getVar())) {
        try {
          final Filter filter = new Filter("FILTER( "
              + add.getVar().toString() + " = "
              + add.getLiteral().toString() + " )");
          filter.setIntersectionVariables(bo.getUnionVariables());
          filter.setUnionVariables(bo.getUnionVariables());
          // we assume that
          filter.setSucceedingOperators(bo.getSucceedingOperators());
          bo.setSucceedingOperator(new OperatorIDTuple(filter, 0));
          join.removePrecedingOperator(bo);
          join.addPrecedingOperator(filter);
          filter.setPrecedingOperator(bo);
          afterJoin = false;
          added.add(filter);
        } catch (final ParseException e) {
          System.err.println(e);
          e.printStackTrace();
View Full Code Here

  @Override
  protected void init() {
    // Define left side of rule
    final AddBinding add = new AddBinding(null, null);
    final Filter filter = new Filter();

    add.setSucceedingOperator(new OperatorIDTuple(filter, -1));
    filter.setPrecedingOperator(add);

    subGraphMap = new HashMap<BasicOperator, String>();
    subGraphMap.put(filter, "filter");
    subGraphMap.put(add, "add");
View Full Code Here

    startNode = filter;
  }

  @Override
  protected boolean checkPrecondition(final Map<String, BasicOperator> mso) {
    final Filter filter = (Filter) mso.get("filter");
    if (filter.getPrecedingOperators().size() > 1)
      return false;
    lupos.sparql1_1.Node n = filter.getNodePointer();
    if (n.jjtGetNumChildren() > 0) {
      n = n.jjtGetChild(0);
      if (n instanceof lupos.sparql1_1.ASTEqualsNode) {
        lupos.sparql1_1.Node left = n.jjtGetChild(0);
        lupos.sparql1_1.Node right = n.jjtGetChild(1);
View Full Code Here

  protected Tuple<Collection<BasicOperator>, Collection<BasicOperator>> transformOperatorGraph(
      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();
    final Filter filter = (Filter) mso.get("filter");
   
    for (final BasicOperator parent : filter.getPrecedingOperators())
      deleteAllAbove(filter, parent, deleted);
    final OperatorIDTuple[] opIDTuples = filter.getSucceedingOperators()
        .toArray(new OperatorIDTuple[0]);
    for (final OperatorIDTuple opIDTuple : opIDTuples)
      deleteAllBelow(filter, opIDTuple.getOperator(), deleted);
    if (deleted.size() > 0 || added.size() > 0)
      return new Tuple<Collection<BasicOperator>, Collection<BasicOperator>>(
View Full Code Here

  }

  @Override
  protected boolean checkPrecondition(final Map<String, BasicOperator> mso) {
    BasicOperator operator = mso.get("operator");
    final Filter filter = (Filter) mso.get("filter");
    while (operator instanceof Filter) {
      if (operator.getPrecedingOperators().size() > 1
          || operator.getSucceedingOperators().size() > 1)
        return false;
      operator = operator.getPrecedingOperators().get(0);
    }
    if (operator.getSucceedingOperators().size() > 1)
      return false;
    if (operator instanceof TriplePattern
        || operator instanceof lupos.engine.operators.index.BasicIndexScan
        || operator instanceof lupos.engine.operators.index.Root)
      return false;
    if (operator instanceof Union) {
      for (final BasicOperator o : operator.getPrecedingOperators())
        if (o.getSucceedingOperators().size() > 1
            || !(o.getUnionVariables().containsAll(
                filter.getUsedVariables()) && !(o instanceof Filter && filter
                .equalFilterExpression((Filter) o))))
          return false;
      return true;
    }
    if (operator instanceof Optional) {
      if (operator.getPrecedingOperators().size() == 2) {
        BasicOperator o = operator.getPrecedingOperators().get(0);
        if (// o.getSucceedingOperators().size() == 1 &&
        o.getUnionVariables().containsAll(filter.getUsedVariables())
            && !(o instanceof Filter && filter
                .equalFilterExpression((Filter) o))) {
          o = operator.getPrecedingOperators().get(1);
          if (// o.getSucceedingOperators().size() == 1 &&
          o.getUnionVariables()
              .containsAll(filter.getUsedVariables())
              && !(o instanceof Filter && filter
                  .equalFilterExpression((Filter) o)))
            return true;
        }
      }
      return false;
    }
    if (operator instanceof Join) {
      // check if the join has preceding operators in a loop
      if (operator.getCycleOperands() != null
          && operator.getCycleOperands().size() > 0)
        return false;
    }
    for (final BasicOperator o : operator.getPrecedingOperators()) {
      if (o.getSucceedingOperators().size() == 1
          && o.getUnionVariables().containsAll(
              filter.getUsedVariables())
          && !(o instanceof Filter && filter
              .equalFilterExpression((Filter) o)))
        return true;
    }
    return false;
  }
View Full Code Here

      final BasicOperator rootOperator) {
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();
   
    BasicOperator operator = mso.get("operator");
    final Filter filter = (Filter) mso.get("filter");

    while (operator instanceof Filter)
      operator = operator.getPrecedingOperators().get(0);
    boolean deleteFilter = true;
    boolean change = true;
    while (change) {
      deleteFilter = true;
      change = false;
      if (operator.getPrecedingOperators() != null) {
        for (final BasicOperator o : operator.getPrecedingOperators()) {
          if (!(o instanceof Filter && filter
              .equalFilterExpression((Filter) o))) {
            if (o.getUnionVariables().containsAll(
                filter.getUsedVariables())) {
              // System.out.println("TTTTTTTTTTTTTbefore:"+o.
              // graphString
              // ());
              final Filter filter2 = (Filter) filter.clone();
              added.add(filter2);
              final OperatorIDTuple oit = o
                  .getOperatorIDTuple(operator);
              filter2.setSucceedingOperator(new OperatorIDTuple(
                  operator, oit.getId()));
              final HashSet<Variable> hsv = new HashSet<Variable>();
              hsv.addAll(o.getIntersectionVariables());
              filter2.setIntersectionVariables(hsv);
              filter2.setUnionVariables(hsv);
              // System.out.println("TTTTTTTTTTTTToit:"+oit);
              o.replaceOperatorIDTuple(oit, new OperatorIDTuple(
                  filter2, 0));
              operator
                  .setPrecedingOperators(new LinkedList<BasicOperator>());
View Full Code Here

  }

  @Override
  protected void init() {
    // Define left side of rule
    final Filter a = new Filter();

    subGraphMap = new HashMap<BasicOperator, String>();
    subGraphMap.put(a, "filter");

    startNode = a;
View Full Code Here

TOP

Related Classes of lupos.engine.operators.singleinput.filter.Filter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.