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; } }
public boolean rangesEqual(int idx, IRangeComparator rc2, int idx2) { //boolean result = this.esList.get(idx).equals(((EventSequenceComparator)rc2).getItem(idx2) ); boolean result = (this.esList.get(idx).hashCode() == ((EventSequenceComparator)rc2).getItem(idx2).hashCode() ); //if (result) { Docx4jDriver.log("matched!");} return result; }
EventSequenceComparator leftESC = new EventSequenceComparator(leftES); EventSequenceComparator rightESC = new EventSequenceComparator(rightES); RangeDifference[] rd = RangeDifferencer.findDifferences(leftESC, rightESC); for (int i=0; i<rd.length; i++ ) { RangeDifference rdi = rd[i]; log.debug( rdi.kindString() + " left " + rdi.leftStart() + "," + rdi.leftLength() + " right " + rdi.rightStart() + "," + rdi.rightLength() ); if (rdi.leftStart() > leftIdx) { for (int k = leftIdx ; k< rdi.leftStart() ; k++) { formatter.declarePrefixMapping(leftESC.getItem(k).getPrefixMapping()); formatEventSequence(leftESC.getItem(k), formatter); leftIdx = rdi.leftStart(); for (int k = rdi.leftStart() ; k< rdi.leftEnd() ; k++) { if (rdi.kind()==rdi.CHANGE) { seq1.addSequence(leftESC.getItem(k)); PrefixMapping existingPM = leftESC.getItem(k).getPrefixMapping(); addToPrefixMapping(seq1.getPrefixMapping(), existingPM); } else {
StringComparator left = new StringComparator(pl.toString()); StringComparator right = new StringComparator(pr.toString()); org.eclipse.compare.internal.LCSSettings settings = new org.eclipse.compare.internal.LCSSettings(); RangeDifference[] rd = RangeDifferencer.findRanges(settings, left, right); for (int x=0; x<rd.length; x++) { log.debug ( toRangeString( left, rd[x].leftStart(), rd[x].leftLength(), true ) + rd[x].kindString() + toRangeString( right, rd[x].rightStart(), rd[x].rightLength(), true ) ); if (rd[x].kind() == RangeDifference.NOCHANGE) { log.debug("NOCHANGE"); for (int i=rd[x].leftStart(); // left and right are identical i<(rd[x].leftStart()+rd[x].leftLength()); i++) { String word = left.getLeaf(i); } else if (rd[x].kind() == RangeDifference.CHANGE) { log.debug("CHANGE"); for (int i=rd[x].leftStart(); i<(rd[x].leftStart()+rd[x].leftLength()); i++) { String word = left.getLeaf(i); for (int i=rd[x].rightStart();
/** * Feeds input from the page into the content and structured viewers. * @param input the input */ private void setInput(Object input) { CompareViewerPane pane = fContentPane; if (pane != null && !pane.isDisposed()) fContentPane.setInput(input); if (fStructuredComparePane != null && !fStructuredComparePane.isDisposed()) fStructuredComparePane.setInput(input); }
private void internalSetContentPaneInput(Object input) { Object oldInput = fContentInputPane.getInput(); fContentInputPane.setInput(input); if (fOutlineView != null) fOutlineView.fireInputChange(oldInput, input); }
private boolean isEditable() { return getCompareConfiguration().isLeftEditable() || getCompareConfiguration().isRightEditable(); }
@Override public String getRightLabel(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { String label = provider.getRightLabel(input); if (label != null) return label; } return fRightLabel; }
public Image getLeftImage(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { Image image = provider.getLeftImage(input); if (image != null) return image; } return fLeftImage; } public String getLeftLabel(Object input) {
public String getAncestorLabel(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { String label = provider.getAncestorLabel(input); if (label != null) return label; } return fAncestorLabel; } public Image getLeftImage(Object input) {
@Override public Image getAncestorImage(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { Image image = provider.getAncestorImage(input); if (image != null) return image; } return fAncestorImage; }
@Override public Image getRightImage(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { Image image = provider.getRightImage(input); if (image != null) return image; } return fRightImage; }
public String getLeftLabel(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { String label = provider.getLeftLabel(input); if (label != null) return label; } return fLeftLabel; } public Image getRightImage(Object input) {
public String getRightLabel(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { String label = provider.getRightLabel(input); if (label != null) return label; } return fRightLabel; } public ICompareInputLabelProvider getLabelProvider(Object input) {
@Override public Image getLeftImage(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { Image image = provider.getLeftImage(input); if (image != null) return image; } return fLeftImage; }
@Override public String getAncestorLabel(Object input) { ICompareInputLabelProvider provider = getLabelProvider(input); if (provider != null) { String label = provider.getAncestorLabel(input); if (label != null) return label; } return fAncestorLabel; }
private static String toRangeString(StringComparator sc, int start, int length, boolean space) { // This method only exists for debug... StringBuilder result = new StringBuilder(); for (int x=start; x<(start+length); x++) { if (space) { result.append(sc.getLeaf(x) + " "); } else { result.append(sc.getLeaf(x)); } } return result.toString(); }