From ff090a1e6ed7d0986fceab1afba2cacfdfede54b Mon Sep 17 00:00:00 2001 From: Tom Copeland Date: Wed, 31 Jul 2002 18:48:23 +0000 Subject: [PATCH] refactoring git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@578 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd/src/net/sourceforge/pmd/cpd/GST.java | 11 +++-------- pmd/src/net/sourceforge/pmd/cpd/Occurrences.java | 9 +++++++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pmd/src/net/sourceforge/pmd/cpd/GST.java b/pmd/src/net/sourceforge/pmd/cpd/GST.java index 060dc2b0d1..3e91f650eb 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/GST.java +++ b/pmd/src/net/sourceforge/pmd/cpd/GST.java @@ -41,7 +41,9 @@ public class GST { Occurrences newOccurrences = new Occurrences(); for (Iterator i = occurrences.getTiles(); i.hasNext();) { Tile tile = (Tile)i.next(); - expandTile(newOccurrences, tile ); + if (!newOccurrences.containsAnyTokensIn(tile)) { + expandTile(newOccurrences, tile ); + } } occurrences = newOccurrences; } @@ -52,13 +54,6 @@ public class GST { } private void expandTile(Occurrences newOcc, Tile tile) { - // make sure the tile doesn't have anything that's used already - for (Iterator i = tile.getTokens().iterator(); i.hasNext();) { - if (newOcc.contains((Token)i.next())) { - return; - } - } - for (Iterator i = occurrences.getOccurrences(tile); i.hasNext();) { Occurrence occ = (Occurrence)i.next(); TokenSet tokenSet = tokenSets.getTokenSet(occ); diff --git a/pmd/src/net/sourceforge/pmd/cpd/Occurrences.java b/pmd/src/net/sourceforge/pmd/cpd/Occurrences.java index 69dc0efbad..5f58ae4471 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/Occurrences.java +++ b/pmd/src/net/sourceforge/pmd/cpd/Occurrences.java @@ -61,6 +61,15 @@ public class Occurrences { return false; } + public boolean containsAnyTokensIn(Tile tile) { + for (Iterator i = tile.getTokens().iterator(); i.hasNext();) { + if (contains((Token)i.next())) { + return true; + } + } + return false; + } + public boolean contains(Token tok) { for (Iterator i = occurrences.keySet().iterator(); i.hasNext();) { Tile tile = (Tile)i.next();