View Javadoc
1 package net.sourceforge.pmd.cpd; 2 3 import java.util.Comparator; 4 import java.util.List; 5 6 public class MarkComparator implements Comparator { 7 8 private final int comparisonUpdateInterval; 9 private CPDListener l; 10 private long comparisons; 11 private List tokens; 12 13 public MarkComparator(CPDListener l, List tokens) { 14 this(l, tokens, 10000); 15 } 16 17 public MarkComparator(CPDListener l, List tokens, int comparisonUpdateInterval) { 18 this.l = l; 19 this.tokens = tokens; 20 this.comparisonUpdateInterval = comparisonUpdateInterval; 21 } 22 23 public int compare(Object o1, Object o2) { 24 comparisons++; 25 if (comparisons % comparisonUpdateInterval == 0) { 26 l.comparisonCountUpdate(comparisons); 27 } 28 29 Mark mark1 = (Mark)o1; 30 Mark mark2 = (Mark)o2; 31 for (int i = 1; i < tokens.size(); i++) { 32 int cmp = tokenAt(i, mark1).compareTo(tokenAt(i, mark2)); 33 if (cmp != 0) { 34 return cmp; 35 } 36 } 37 return 0; 38 } 39 40 public TokenEntry tokenAt(int index, Mark mark) { 41 return (TokenEntry)tokens.get((index + mark.getIndexIntoTokenArray()) % tokens.size()); 42 } 43 }

This page was automatically generated by Maven