org.eclipse.compare.internal.LCSSettings settings = new org.eclipse.compare.internal.LCSSettings(); RangeDifference[] rd = RangeDifferencer.findRanges(settings, left, right);
return findRanges(settings, left, right); RangeDifference[] in = findDifferences(settings, ancestor, left, right); List out = new ArrayList();
return findDifferences( settings, left, right); RangeDifference[] leftAncestorScript = null; RangeDifference[] rightAncestorScript = findDifferences( settings, ancestor, right); if (rightAncestorScript != null) { leftAncestorScript = findDifferences(settings, ancestor, left); diff3.add(createRangeDifference3(myIter, yourIter, diff3, right, left, changeRangeStart, changeRangeEnd));
/** * Finds the differences between two <code>IRangeComparator</code>s. The * differences are returned as an array of <code>RangeDifference</code>s. * If no differences are detected an empty array is returned. * * @param left * the left range comparator * @param right * the right range comparator * @return an array of range differences, or an empty array if no * differences were found */ public static RangeDifference[] findDifferences(IRangeComparator left, IRangeComparator right) { return findDifferences( new LCSSettings(), left, right); }
private static boolean rangeSpansEqual(IRangeComparator right, int rightStart, int rightLen, IRangeComparator left, int leftStart, int leftLen) { if (rightLen == leftLen) { int i = 0; for (i = 0; i < rightLen; i++) { if (!rangesEqual(right, rightStart + i, left, leftStart + i)) break; } if (i == rightLen) return true; } return false; }
if (rangeSpansEqual(right, rightStart, rightEnd - rightStart, left, leftStart, leftEnd - leftStart)) kind = RangeDifference.ANCESTOR;
RangeDifference[] in = findDifferences( settings, left, right); List out = new ArrayList();
private static boolean rangeSpansEqual(IRangeComparator right, int rightStart, int rightLen, IRangeComparator left, int leftStart, int leftLen) { if (rightLen == leftLen) { int i= 0; for (i= 0; i < rightLen; i++) { if (!rangesEqual(right, rightStart + i, left, leftStart + i)) break; } if (i == rightLen) return true; } return false; }
if (rangeSpansEqual(right, rightStart, rightEnd - rightStart, left, leftStart, leftEnd - leftStart)) kind = RangeDifference.ANCESTOR;
/** * Finds the differences among two <code>IRangeComparator</code>s. * In contrast to <code>findDifferences</code>, the result * contains <code>RangeDifference</code> elements for non-differing ranges too. * * @param left the left range comparator * @param right the right range comparator * @return an array of range differences */ public static RangeDifference[] findRanges(IRangeComparator left, IRangeComparator right) { return findRanges((IProgressMonitor)null, left, right); }
return findRanges(pm, left, right); RangeDifference[] in= findDifferences(pm, ancestor, left, right); List out= new ArrayList();
RangeDifference[] rd = RangeDifferencer.findDifferences(leftESC, rightESC);
return findDifferences( settings, left, right); RangeDifference[] leftAncestorScript = null; RangeDifference[] rightAncestorScript = findDifferences( settings, ancestor, right); if (rightAncestorScript != null) { leftAncestorScript = findDifferences(settings, ancestor, left); diff3.add(createRangeDifference3(myIter, yourIter, diff3, right, left, changeRangeStart, changeRangeEnd));
private static boolean rangeSpansEqual(IRangeComparator right, int rightStart, int rightLen, IRangeComparator left, int leftStart, int leftLen) { if (rightLen == leftLen) { int i= 0; for (i= 0; i < rightLen; i++) { if (!rangesEqual(right, rightStart + i, left, leftStart + i)) break; } if (i == rightLen) return true; } return false; }
if (rangeSpansEqual(right, rightStart, rightEnd - rightStart, left, leftStart, leftEnd - leftStart)) kind= RangeDifference.ANCESTOR; else
/** * Finds the differences among two <code>IRangeComparator</code>s. * In contrast to <code>findDifferences</code>, the result * contains <code>RangeDifference</code> elements for non-differing ranges too. * * @param left the left range comparator * @param right the right range comparator * @return an array of range differences */ public static RangeDifference[] findRanges(IRangeComparator left, IRangeComparator right) { return findRanges((IProgressMonitor) null, left, right); }
return findRanges(factory,pm, left, right); RangeDifference[] in= findDifferences(factory, pm, ancestor, left, right); List out= new ArrayList();
public double getMatchRatio(StringComparator other) { LCSSettings settings = new LCSSettings(); settings.setUseGreedyMethod(true); settings.setPowLimit(1.5); settings.setTooLong(150 * 150); RangeDifference[] differences = RangeDifferencer.findDifferences( settings, other, this); int distanceOther = 0; for (RangeDifference d : differences) { distanceOther += d.leftLength(); } int distanceThis = 0; for (RangeDifference d : differences) { distanceThis += d.rightLength(); } return ((0.0 + distanceOther) / other.getRangeCount() + (0.0 + distanceThis) / getRangeCount()) / 2; } }
try { if (ancestor == null) return findDifferences(pm, left, right); SubMonitor monitor = SubMonitor.convert(pm, CompareMessages.RangeComparatorLCS_0, 100); RangeDifference[] leftAncestorScript= null; RangeDifference[] rightAncestorScript= findDifferences(monitor.newChild(50), ancestor, right); if (rightAncestorScript != null) { monitor.setWorkRemaining(100); leftAncestorScript= findDifferences(monitor.newChild(50), ancestor, left); diff3.add(createRangeDifference3(myIter, yourIter, diff3, right, left, changeRangeStart, changeRangeEnd));
private static boolean rangeSpansEqual(IRangeComparator right, int rightStart, int rightLen, IRangeComparator left, int leftStart, int leftLen) { if (rightLen == leftLen) { int i = 0; for (i = 0; i < rightLen; i++) { if (!rangesEqual(right, rightStart + i, left, leftStart + i)) break; } if (i == rightLen) return true; } return false; }