Package lupos.engine.operators

Examples of lupos.engine.operators.BasicOperator


          e.printStackTrace();
        }
      }
      // set lastOperator to further comparison

      final BasicOperator lastOperator = (BasicOperator) graphWrapper
      .getElement();
      boolean found = false;
      this.displayCommentLabel = false;
      BasicOperator lastOperatorFrom;
      while (!found && (!this.hasEnded || this.ringBuffer.hasNext())) {
        if (this.ringBuffer.hasNext()) {
          final StepContainer resultStepContainer = this.ringBuffer.next();
          lastOperatorFrom = resultStepContainer.getFrom();
        } else {
View Full Code Here


        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);
        }
View Full Code Here

  private void cloneFurther(BasicOperator clone, BasicOperator toClone,
      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;
View Full Code Here

                   
                    java.util.Iterator<BasicOperator> itp = newOrder.iterator();
               
                    while(itp.hasNext()) {
            
                        BasicOperator first = this.getNext(itp, alreadyUsed);
                       
                        if(first==null)
                          break;
                       
                        if(itp.hasNext()) {
                          feedAlreadyUsed(oldJoin, first.getOperatorIDTuple(oldJoin).getId(), alreadyUsed);
                         
                            BasicOperator second = this.getNext(itp, alreadyUsed);
                            if(second==null){
                                remainingJoins.add(first);
                                break;
                            }
                           
                            lupos.engine.operators.multiinput.join.Join newJoin = new lupos.engine.operators.multiinput.join.Join();
                            this.addNodeToStartNodeMapNullCheck(newJoin, _startNodes);
                               
                            handleJoinOperand(oldJoin, first.getOperatorIDTuple(oldJoin).getId(), newJoin, 0, alreadyUsed);
                            handleJoinOperand(oldJoin, second.getOperatorIDTuple(oldJoin).getId(), newJoin, 1, alreadyUsed);
                               
                            HashSet<lupos.datastructures.items.Variable> hv = new HashSet<lupos.datastructures.items.Variable>();
                            for(BasicOperator bo: newJoin.getPrecedingOperators()){
                              hv.addAll(bo.getUnionVariables());
                            }   
                            newJoin.setUnionVariables(hv);
               
                            newJoin.setIntersectionVariables(new HashSet<lupos.datastructures.items.Variable>());
                            newJoin.getIntersectionVariables().addAll(first.getUnionVariables());
                            for(BasicOperator bo: newJoin.getPrecedingOperators()){
                              newJoin.getIntersectionVariables().retainAll(bo.getUnionVariables());
                            }
                           
                            remainingJoins.add(newJoin);
                        }
                        else {
                            remainingJoins.add(first);
                        }
                    }
               
                    while(remainingJoins.size() > 1) {
                        // choose best combination
                        java.util.Collection<BasicOperator> co = this.getNextJoin(remainingJoins);
                        java.util.Iterator<BasicOperator> io = co.iterator();
                        BasicOperator first = io.next();
                        BasicOperator second = io.next();
               
                        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);                 
View Full Code Here

                    }
                  }
                }
               
            private BasicOperator getNext(java.util.Iterator<BasicOperator> itp, java.util.HashSet<BasicOperator> alreadyUsed){
                        BasicOperator first = itp.next();
                        while(itp.hasNext() && alreadyUsed.contains(first)){
                          first = itp.next();
                        }
                       
                        if(alreadyUsed.contains(first))
View Full Code Here

       
        private java.util.Collection<BasicOperator> optimizeJoinOrderAccordingToMostRestrictionsForMergeJoin(List<BasicOperator> remaining) {
            java.util.Collection<BasicOperator> newOrder = new java.util.LinkedList<BasicOperator>();
       
            while(remaining.size() > 1) {
                BasicOperator best1 = null;
                BasicOperator best2 = null;
                int minOpenPositions = 4;
       
                for(BasicOperator bo1 : remaining) {
                    for(BasicOperator bo2 : remaining) {
                        if(!bo1.equals(bo2)) {
View Full Code Here

            return newOrder;
        }
       
        private java.util.Collection<BasicOperator> getNextJoin(java.util.Collection<BasicOperator> remainingJoins) {
            java.util.Collection<BasicOperator> co = new java.util.LinkedList<BasicOperator>();
            BasicOperator best1 = null;
            BasicOperator best2 = null;
            int minCommonVariables = -1;
       
            for(BasicOperator o1 : remainingJoins) {
                for(BasicOperator o2 : remainingJoins) {
                    if(!o1.equals(o2)) {
View Full Code Here

        return _result;
    }

    protected void replace(HashMap<Class<?>, HashSet<BasicOperator>> _startNodes) {
        BasicOperator finalJoin = this.getBinaryJoin(this.join, _startNodes);
        finalJoin.setSucceedingOperators(this.join.getSucceedingOperators());
       
        for(OperatorIDTuple opIDt : finalJoin.getSucceedingOperators()) {
            opIDt.getOperator().removePrecedingOperator(this.join);
            opIDt.getOperator().addPrecedingOperator(finalJoin);
        }
       
        this.deleteNodeFromStartNodeMapNullCheck(this.join, _startNodes);
View Full Code Here

        .getPrecedingOperators();
    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) union
        .getSucceedingOperators();
    final int index = genAdd.getOperatorIDTuple(union).getId();

    BasicOperator pre;
    for (int i = 0; i < pres.size(); i++) {
      pre = pres.get(i);
      pre.addSucceedingOperator(new OperatorIDTuple(union, index));
      pre.removeSucceedingOperator(genAdd);
      union.addPrecedingOperator(pre);
    }

    union.removePrecedingOperator(genAdd);
    union.setSucceedingOperator(new OperatorIDTuple(genAdd, 0));

    genAdd.setPrecedingOperator(union);
    genAdd.setSucceedingOperators(succs);

    BasicOperator succ;
    for (int i = 0; i < succs.size(); i++) {
      succ = succs.get(i).getOperator();
      succ.addPrecedingOperator(genAdd);
      succ.removePrecedingOperator(union);
    }

    rootOperator.deleteParents();
    rootOperator.setParents();
    rootOperator.detectCycles();
View Full Code Here

                    break;
                }

                // --- handle JumpOver - begin ---
                this.jump_filter_end = (lupos.engine.operators.BasicOperator) _precOp_2_0;
                BasicOperator _searchIndex_2_0 = _precOp_2_0;
                boolean _continueFlag_2_0 = false;

                while(_searchIndex_2_0 != null && (_searchIndex_2_0.getClass() == lupos.engine.operators.singleinput.filter.Filter.class)) {
                    if(_searchIndex_2_0.getClass() != lupos.engine.operators.singleinput.filter.Filter.class) {
                        _continueFlag_2_0 = true;
                        break;
                    }

                    if(_searchIndex_2_0.getSucceedingOperators().size() != 1 || _searchIndex_2_0.getPrecedingOperators().size() != 1) {
                        _continueFlag_2_0 = true;
                        break;
                    }

                    _searchIndex_2_0 = _searchIndex_2_0.getPrecedingOperators().get(0);
                }

                if(_continueFlag_2_0) {
                    continue;
                }

                this.jump_filter_begin = (lupos.engine.operators.BasicOperator) _searchIndex_2_0.getSucceedingOperators().get(0).getOperator();
                // --- handle JumpOver - end ---


                List<BasicOperator> _precedingOperators_3_0 = this.jump_filter_begin.getPrecedingOperators();
View Full Code Here

TOP

Related Classes of lupos.engine.operators.BasicOperator

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.