forked from phoedos/pmd
tweaked duplicate checking; major speedup
git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@943 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
@@ -25,7 +25,7 @@ public class BatchBuilder {
|
||||
List batches = new ArrayList();
|
||||
|
||||
int currentBatchSize = 0;
|
||||
int maxBatchSize = 10;
|
||||
int maxBatchSize = 50;
|
||||
|
||||
List wrappers = new ArrayList();
|
||||
for (Iterator i = occ.getTiles(); i.hasNext();) {
|
||||
|
@@ -36,7 +36,7 @@ public class DCPD {
|
||||
|
||||
System.out.println("Tokenizing");
|
||||
job = new Job("java_lang", new Integer((int)System.currentTimeMillis()));
|
||||
tokenSetWrapper = new TokenSetsWrapper(loadTokens("C:\\j2sdk1.4.0_01\\src\\java\\lang", true), job);
|
||||
tokenSetWrapper = new TokenSetsWrapper(loadTokens("C:\\j2sdk1.4.0_01\\src\\java\\lang\\ref", true), job);
|
||||
System.out.println("Tokenizing complete, " + (System.currentTimeMillis()-start) + " elapsed ms");
|
||||
|
||||
System.out.println("Writing the TokenSetsWrapper to the space");
|
||||
|
@@ -17,12 +17,6 @@ public class DCPDResultsImpl extends TileOccurrences implements Results, Seriali
|
||||
|
||||
public void addTile(Tile tile, TokenEntry tok) {
|
||||
super.addTile(tile, tok);
|
||||
/*
|
||||
for (int i=orderedTiles.size()-1; i>=0; i--) {
|
||||
Tile candidate = (Tile)orderedTiles.get(i);
|
||||
removeDupesOf(candidate);
|
||||
}
|
||||
*/
|
||||
if (orderedTiles.size() > 1) {
|
||||
removeDupesOf((Tile)orderedTiles.get(orderedTiles.size()-1));
|
||||
}
|
||||
@@ -36,18 +30,23 @@ public class DCPDResultsImpl extends TileOccurrences implements Results, Seriali
|
||||
}
|
||||
|
||||
private void removeDupesOf(Tile largerTile) {
|
||||
String largeTileSrc = ((TokenEntry)largerTile.getTokens().get(0)).getTokenSrcID();
|
||||
|
||||
for (int i=0; i<orderedTiles.size()-1; i++) {
|
||||
Tile smallerTile = (Tile)orderedTiles.get(i);
|
||||
|
||||
String smallTileSrc = ((TokenEntry)smallerTile.getTokens().get(0)).getTokenSrcID();
|
||||
if (!smallTileSrc.equals(largeTileSrc)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
outer:
|
||||
for (int j=0; j<smallerTile.getTokens().size(); j++) {
|
||||
TokenEntry smallTileToken = (TokenEntry)smallerTile.getTokens().get(j);
|
||||
|
||||
for (int k=0; k<largerTile.getTokens().size(); k++) {
|
||||
TokenEntry largeTileToken = (TokenEntry)largerTile.getTokens().get(k);
|
||||
if (smallTileToken.getBeginLine() == largeTileToken.getBeginLine() &&
|
||||
smallTileToken.getImage().equals(largeTileToken.getImage()) &&
|
||||
smallTileToken.getTokenSrcID().equals(largeTileToken.getTokenSrcID())) {
|
||||
if (smallTileToken.getIndex() == largeTileToken.getIndex()) {
|
||||
orderedTiles.remove(smallerTile);
|
||||
tileToOccurrenceMap.remove(smallerTile);
|
||||
break outer;
|
||||
|
Reference in New Issue
Block a user