Package lupos.engine.operators

Examples of lupos.engine.operators.OperatorIDTuple


  @Override
  protected void init() {
    final Union union = new Union();
    final Join join = new Join();

    union.setSucceedingOperator(new OperatorIDTuple(join, -1));
    join.setPrecedingOperator(union);

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


      oid.getOperator().addPrecedingOperator(union);
    }
    final List<OperatorIDTuple> precedingOperatorsJoin = new LinkedList<OperatorIDTuple>();
    for (final BasicOperator bo : join.getPrecedingOperators()) {
      if (!(bo.equals(union))) {
        precedingOperatorsJoin.add(new OperatorIDTuple(bo, bo
            .getOperatorIDTuple(join).getId()));
      }
    }
    boolean firstTime = true;
    for (final BasicOperator toMove : unionOperands) {
      Join joinNew;
      if (firstTime) {
        // use existing join operator
        joinNew = join;
        joinNew.removePrecedingOperator(union);
        firstTime = false;
      } else {
        // clone join operator plus its other operands
        joinNew = new Join();
        added.add(joinNew);
        union.addPrecedingOperator(joinNew);

        for (final OperatorIDTuple oid : precedingOperatorsJoin) {
          final BasicOperator toClone = oid.getOperator();
          final BasicOperator clone = toClone.clone();
          added.add(clone);
          clone.setSucceedingOperator(new OperatorIDTuple(joinNew,
              oid.getId()));
          joinNew.addPrecedingOperator(clone);
          cloneFurther(clone, toClone, added);
        }

      }
      joinNew.setSucceedingOperator(new OperatorIDTuple(union, union
          .getPrecedingOperators().size() - 1));
      joinNew.addPrecedingOperator(toMove);

      final LinkedList<Variable> intersectionVariables = new LinkedList<Variable>();
      final LinkedList<Variable> unionVariables = new LinkedList<Variable>();
      intersectionVariables.addAll(joinNew.getPrecedingOperators().get(0)
          .getUnionVariables());
      for (final BasicOperator bo : joinNew.getPrecedingOperators()) {
        unionVariables.addAll(bo.getUnionVariables());
        intersectionVariables.retainAll(bo.getUnionVariables());
      }
      joinNew.setIntersectionVariables(intersectionVariables);
      joinNew.setUnionVariables(unionVariables);

      toMove.setSucceedingOperator(new OperatorIDTuple(joinNew, id));
    }
    if (deleted.size() > 0 || added.size() > 0)
      return new Tuple<Collection<BasicOperator>, Collection<BasicOperator>>(
          added, deleted);
    else
View Full Code Here

      final Collection<BasicOperator> added) {
    if (clone instanceof Union) {
      for (final BasicOperator toCloneNew : toClone
          .getPrecedingOperators()) {
        final BasicOperator cloneNew = toCloneNew.clone();
        final OperatorIDTuple oid = toCloneNew
            .getOperatorIDTuple(toClone);
        cloneNew.removeSucceedingOperator(toClone);
        // try {
        cloneNew.addSucceedingOperator(new OperatorIDTuple(clone, oid
            .getId()));
        // } catch (final Exception e) {
        // System.out.println("2");
        // }
        clone.removePrecedingOperator(toCloneNew);
        clone.addPrecedingOperator(cloneNew);
        added.add(cloneNew);
        cloneFurther(cloneNew, toCloneNew, added);
      }
    } else {
      // if (toClone instanceof TriplePattern)
      // System.out.println();
      while (toClone.getPrecedingOperators().size() == 1
          && !(toClone instanceof PatternMatcher
              || toClone instanceof Root || toClone
              .getPrecedingOperators().get(0) instanceof TriggerOneTime)) {
        final BasicOperator toCloneNew = toClone
            .getPrecedingOperators().get(0);
        final BasicOperator cloneNew = (toCloneNew instanceof PatternMatcher || toCloneNew instanceof Root) ? toCloneNew
            : toCloneNew.clone();

        final OperatorIDTuple oidOld = toClone.getPrecedingOperators()
            .get(0).getOperatorIDTuple(toClone);
        cloneNew.replaceOperatorIDTuple(oidOld, new OperatorIDTuple(
            clone, toCloneNew.getSucceedingOperators().get(0)
                .getId()));
        clone.setPrecedingOperator(cloneNew);
        clone = cloneNew;
        toClone = toCloneNew;
        if (!(toCloneNew instanceof PatternMatcher || toCloneNew instanceof Root))
          added.add(cloneNew);
      }
      if (!(clone instanceof PatternMatcher || clone instanceof Root))
        for (final BasicOperator bo : toClone.getPrecedingOperators()) {
          final int id2 = bo.getOperatorIDTuple(toClone).getId();
          bo.addSucceedingOperator(new OperatorIDTuple(clone, id2));
          clone.addPrecedingOperator(bo);
        }
    }
  }
View Full Code Here

  @Override
  protected void init() {
    final TriplePattern tp = new TriplePattern();
    final ReplaceVar repVar = new ReplaceVar();

    tp.setSucceedingOperator(new OperatorIDTuple(repVar, 0));
    repVar.setPrecedingOperator(tp);

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

               
                        lupos.engine.operators.multiinput.join.Join join = new lupos.engine.operators.multiinput.join.Join();
                        this.addNodeToStartNodeMapNullCheck(join, _startNodes);
                       
                        if(first instanceof lupos.engine.operators.multiinput.join.Join && second instanceof lupos.engine.operators.multiinput.join.Join){                 
                          first.setSucceedingOperator(new OperatorIDTuple(join, 0));               
                          join.addPrecedingOperator(first);
                        } else {
                          if(first instanceof lupos.engine.operators.multiinput.join.Join){
                            BasicOperator tmp = first;
                            first = second;
                            second = tmp;
                          }
                          // second is now a join and first something else...
                            handleJoinOperand(oldJoin, first.getOperatorIDTuple(oldJoin).getId(), join, 0, alreadyUsed);                 
                        }
                       
                        second.setSucceedingOperator(new OperatorIDTuple(join, 1));             
                        join.addPrecedingOperator(second);
                       
                        HashSet<lupos.datastructures.items.Variable> hv = new HashSet<lupos.datastructures.items.Variable>();
                        for(BasicOperator bo: join.getPrecedingOperators()){
                          hv.addAll(bo.getUnionVariables());
View Full Code Here

                    return remainingJoins.iterator().next();
                }
               
                private void feedAlreadyUsed(lupos.engine.operators.multiinput.join.Join oldJoin, int oldOperandID, java.util.HashSet<BasicOperator> alreadyUsed){
                  for(BasicOperator bo: oldJoin.getPrecedingOperators()){
                    OperatorIDTuple opID=bo.getOperatorIDTuple(oldJoin);
                    if(opID!=null && opID.getId()==oldOperandID){
                      alreadyUsed.add(bo);
                    }
                  }         
                }
View Full Code Here

               
                private void handleJoinOperand(lupos.engine.operators.multiinput.join.Join oldJoin, int oldOperandID, lupos.engine.operators.multiinput.join.Join newJoin, int newOperandID, java.util.HashSet<BasicOperator> alreadyUsed){
                  java.util.LinkedList<lupos.engine.operators.BasicOperator> tmp = new java.util.LinkedList<lupos.engine.operators.BasicOperator>();
                  tmp.addAll(oldJoin.getPrecedingOperators());
                  for(BasicOperator bo: tmp){
                    OperatorIDTuple opID=bo.getOperatorIDTuple(oldJoin);
                    if(opID!=null && opID.getId()==oldOperandID){
                      alreadyUsed.add(bo);
                      bo.replaceOperatorIDTuple(opID, new OperatorIDTuple(newJoin, newOperandID));
                      newJoin.addPrecedingOperator(bo);
                    }
                  }
                }
View Full Code Here

  public void set(final TripleConsumer[] operators) {
    final List<OperatorIDTuple> succeedingOperators = new LinkedList<OperatorIDTuple>();
    int i = 0;
    for (final TripleConsumer o : operators)
      succeedingOperators.add(new OperatorIDTuple((BasicOperator)o, i++));

    setSucceedingOperators(succeedingOperators);
  }
View Full Code Here

    throw (new UnsupportedOperationException("This Operator(" + this
        + ") should have been replaced before being used."));
  }

  public void add(final TriplePattern tp) {
    addSucceedingOperator(new OperatorIDTuple(tp, 0));
  }
View Full Code Here

  @Override
  protected void init() {
    final AddBinding add = new AddBinding(null, null);
    final Join join = new Join();

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

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

TOP

Related Classes of lupos.engine.operators.OperatorIDTuple

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.