Package org.eclipse.compare.rangedifferencer

Examples of org.eclipse.compare.rangedifferencer.RangeDifference


        return;
      }

      // Debug: Raw output
      for (int i=0; i<rd.length; i++ ) {
        RangeDifference rdi = rd[i];
        log( rdi.kindString() + " left " + rdi.leftStart() + "," + rdi.leftLength()
            + " right " + rdi.rightStart() + "," + rdi.rightLength() );
      }

      log("top level LCS done; now performing child actions ...");


      int leftIdx = 0;
      for (int i=0; i<rd.length; i++ ) {

        RangeDifference rdi = rd[i];

        // No change
        if (rdi.leftStart() > leftIdx) {

          for (int k = leftIdx ; k< rdi.leftStart() ; k++) {
            // This just goes straight into the output,
            // since it is the same on the left and the right.
            // Since it is the same on both side, we handle
            // it here (on the left side), and
            // ignore it on the right
            //out.append("\n<!-- Adding same -->\n");
            addComment("Adding same", formatter);
              formatter.declarePrefixMapping(leftESC.getItem(k).getPrefixMapping());
            formatEventSequence(leftESC.getItem(k), formatter);
            //out.append("\n<!-- .. Adding same done -->");
            addComment(".. Adding same done ", formatter);

            // If we wanted to difference sdt's which
            // were treated the as the same (via their id)
            // this is where we'd have to change
            // (in addition to changing EventSequence for
            //  such things so that hashcode returned their
            //  id!)
          }
          leftIdx = rdi.leftStart();
        }

        EventSequence seq1 = new EventSequence();
        // Evil hack - doesn't work
        // seq1.mapPrefix("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");

        for (int k = rdi.leftStart() ; k< rdi.leftEnd() ; k++) {

          if (rdi.kind()==rdi.CHANGE) {
            // This we need to diff
            //leftReport.append( "#" );
            seq1.addSequence(leftESC.getItem(k));

            // Don't forget our existing prefix mappings!
            PrefixMapping existingPM = leftESC.getItem(k).getPrefixMapping();
            addToPrefixMapping(seq1.getPrefixMapping(), existingPM);
          } else {
            // Does this happen?
            // This just goes straight into the output,
              formatter.declarePrefixMapping(leftESC.getItem(k).getPrefixMapping());
            //out.append("\n<!-- Adding same II -->\n");
            addComment("Adding same II", formatter);
            formatEventSequence(leftESC.getItem(k), formatter);
            //out.append("\n<!-- .. Adding same done -->");
            addComment(".. Adding same done", formatter);
          }
        }


        EventSequence seq2 = new EventSequence();
        // Evil hack - doesn't work
        //seq2.mapPrefix("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");
        for (int k = rdi.rightStart() ; k< rdi.rightEnd() ; k++) {
          if (rdi.kind()==rdi.CHANGE) {
            // This is the RHS of the diff
            //rightReport.append( "#" );
            seq2.addSequence(rightESC.getItem(k));

            // Don't forget our existing prefix mappings!
            PrefixMapping existingPM = rightESC.getItem(k).getPrefixMapping();
            addToPrefixMapping(seq2.getPrefixMapping(), existingPM);

          }
        }

        leftIdx = rdi.leftEnd();

        // ok, now perform this diff
        //log("performing diff");
        //out.append("\n<!-- Differencing -->\n");
        addComment("Differencing", formatter);
View Full Code Here


        //2. Successive changed lines are merged into on RangeDifference
        //     forAll r1,r2 element differences: r1.rightStart()<r2.rightStart() -> r1.rightEnd()<r2.rightStart

        ArrayList<Integer> regions = new ArrayList<Integer>();
        for (int i = 0; i < differences.length; i++) {
            RangeDifference curr = differences[i];
            if (curr.kind() == RangeDifference.CHANGE && curr.rightLength() > 0) {
                int startLine = curr.rightStart();
                int endLine = curr.rightEnd() - 1;

                if (startLine == endLine) {
                    regions.add(startLine);
                } else {
                    for (int iLine = startLine; iLine <= endLine; iLine++) {
View Full Code Here

      rootlistopened = true;
    }

    for (int j = 0; j < differences.length; j++) {

      RangeDifference d = differences[j];

      boolean lvl1listopened = false;

      if (rootlistopened) {
        txt.addHtml("<li>");
      }

      if (d.leftLength() + d.rightLength() > 1) {
        txt.addHtml("<ul class='changelist'>");
        lvl1listopened = true;
      }

      // left are the old ones
      for (int i = d.leftStart(); i < d.leftEnd(); i++) {
        if (lvl1listopened)
          txt.addHtml("<li>");

        // add a bullet for a old tag
        addTagOld(txt, other.getAncestor(i));

        if (lvl1listopened)
          txt.addHtml("</li>");

      }

      // right are the new ones
      for (int i = d.rightStart(); i < d.rightEnd(); i++) {
        if (lvl1listopened)
          txt.addHtml("<li>");

        // add a bullet for a new tag
        addTagNew(txt, this.getAncestor(i));
View Full Code Here

        leftLength = leftEnd - leftStart;
        rightLength = rightEnd - rightStart;
        i++;
      }

      newRanges.add(new RangeDifference(kind, rightStart, rightLength,
          leftStart, leftLength));
    }

    return newRanges;
  }
View Full Code Here

        rightLength = rightEnd - rightStart;
        ancestorLength = ancestorEnd - ancestorStart;
        i++;
      }

      newRanges.add(new RangeDifference(kind, rightStart, rightLength,
          leftStart, leftLength, ancestorStart, ancestorLength));
    }

    return newRanges;
  }
View Full Code Here

              throw new IllegalStateException(
                  "space found aiaiai");
          }
        }
      }
      newRanges.add(new RangeDifference(kind, rightStart, rightEnd
          - rightStart, leftStart, leftEnd - leftStart));
    }

    return newRanges;
  }
View Full Code Here

        leftEnd = differences[i + 1].leftEnd();
        rightEnd = differences[i + 1].rightEnd();
        i++;
      }

      newRanges.add(new RangeDifference(kind, rightStart, rightEnd
          - rightStart, leftStart, leftEnd - leftStart));
    }

    return newRanges;
  }
View Full Code Here

TOP

Related Classes of org.eclipse.compare.rangedifferencer.RangeDifference

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.