From eec851b06bf1f709271b897c530c2e3a5319d0db Mon Sep 17 00:00:00 2001 From: Tom Copeland Date: Thu, 8 Aug 2002 15:32:53 +0000 Subject: [PATCH] tweaked to fix a line count bug git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@655 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd/src/net/sourceforge/pmd/cpd/CPD.java | 7 ++++--- pmd/src/net/sourceforge/pmd/cpd/GUI.java | 16 +++++++++++----- pmd/src/net/sourceforge/pmd/cpd/Results.java | 11 ++++++----- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/pmd/src/net/sourceforge/pmd/cpd/CPD.java b/pmd/src/net/sourceforge/pmd/cpd/CPD.java index af6262b1c5..e92e852f91 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/CPD.java +++ b/pmd/src/net/sourceforge/pmd/cpd/CPD.java @@ -108,7 +108,8 @@ public class CPD { Iterator i = results.getOccurrences(tile); TokenEntry firstToken = (TokenEntry)i.next(); TokenList tl = tokenSets.getTokenList(firstToken); - return tl.getSlice(firstToken.getBeginLine(), firstToken.getBeginLine()+ results.getTileLineCount(tile, tokenSets)); + int endLine = firstToken.getBeginLine()+ results.getTileLineCount(tile, tokenSets)-1; + return tl.getSlice(firstToken.getBeginLine()-1, endLine); } catch (Exception ex) {ex.printStackTrace(); } return ""; } @@ -121,8 +122,8 @@ public class CPD { try { //cpd.add(findFilesRecursively("c:\\data\\pmd\\pmd-cpd\\src\\net\\sourceforge\\pmd\\cpd")); //cpd.add(new File("c:\\data\\cougaar\\core\\src\\org\\cougaar\\core\\adaptivity\\PlayHelper.java")); - cpd.addRecursively("c:\\data\\cougaar\\core\\src\\org\\cougaar\\core\\adaptivity\\"); - //cpd.add(findFilesRecursively("c:\\data\\cougaar\\core\\src\\org\\")); + //cpd.addRecursively("c:\\data\\cougaar\\core\\src\\org\\cougaar\\core\\adaptivity\\"); + cpd.addRecursively("c:\\data\\cougaar\\core\\src\\org\\"); } catch (IOException ioe) { ioe.printStackTrace(); return; diff --git a/pmd/src/net/sourceforge/pmd/cpd/GUI.java b/pmd/src/net/sourceforge/pmd/cpd/GUI.java index 4f04ae3be7..57a9ae5abe 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/GUI.java +++ b/pmd/src/net/sourceforge/pmd/cpd/GUI.java @@ -36,7 +36,7 @@ public class GUI implements CPDListener { } private class BrowseListener implements ActionListener { public void actionPerformed(ActionEvent e) { - JFileChooser fc = new JFileChooser(System.getProperty("user.home")); + JFileChooser fc = new JFileChooser(rootDirectoryField.getText()); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fc.showDialog(frame, "Select"); if (fc.getSelectedFile() != null) { @@ -45,7 +45,9 @@ public class GUI implements CPDListener { } } - private JTextField rootDirectoryField= new JTextField("c:\\data\\pmd\\pmd\\src\\net\\sourceforge\\pmd\\cpd\\"); + private JTextField rootDirectoryField= new JTextField("C:\\data\\datagrabber\\datagrabber\\src\\org\\cougaar\\mlm\\ui\\newtpfdd\\transit\\"); + //private JTextField rootDirectoryField= new JTextField("c:\\data\\pmd\\pmd\\src\\net\\sourceforge\\pmd\\cpd\\"); + //private JTextField rootDirectoryField = new JTextField(System.getProperty("user.home")); //private JTextField rootDirectoryField= new JTextField("c:\\data\\cougaar\\core\\src"); private JTextField minimumLengthField= new JTextField("30"); @@ -137,10 +139,14 @@ public class GUI implements CPDListener { cpd.setListener(this); cpd.setMinimumTileSize(Integer.parseInt(minimumLengthField.getText())); addingTokensBar.setStringPainted(true); - if (recurseCheckbox.isSelected()) { - cpd.addRecursively(rootDirectoryField.getText()); + if (rootDirectoryField.getText().endsWith(".java")) { + cpd.add(new File(rootDirectoryField.getText())); } else { - cpd.addAllInDirectory(rootDirectoryField.getText()); + if (recurseCheckbox.isSelected()) { + cpd.addRecursively(rootDirectoryField.getText()); + } else { + cpd.addAllInDirectory(rootDirectoryField.getText()); + } } cpd.go(); CPDRenderer renderer = new TextRenderer(); diff --git a/pmd/src/net/sourceforge/pmd/cpd/Results.java b/pmd/src/net/sourceforge/pmd/cpd/Results.java index 5b0d343fb1..f1aaafc67a 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/Results.java +++ b/pmd/src/net/sourceforge/pmd/cpd/Results.java @@ -18,12 +18,13 @@ public class Results extends TileOccurrences { } public int getTileLineCount(Tile tile, TokenSets tokenSets) { - Iterator i = getOccurrences(tile); - TokenEntry firstToken = (TokenEntry)i.next(); + TokenEntry firstToken = (TokenEntry)((List)tileToOccurrenceMap.get(tile)).get(0); TokenList tl = tokenSets.getTokenList(firstToken); - int lastTokenIndex = firstToken.getIndex() + tile.getTokenCount(); - TokenEntry lastToken = (TokenEntry)tl.get(lastTokenIndex); - return (lastToken.getBeginLine()+1) - firstToken.getBeginLine(); + TokenEntry lastToken = (TokenEntry)tl.get(firstToken.getIndex() + tile.getTokenCount()); + // note we subtract 1 here... if we didn't, then this: + // line20: foo =bar; + // line21: baz = bif; + return lastToken.getBeginLine() - firstToken.getBeginLine() - 1; } private void removeDupesOf(Tile tile) {