From 50fca09d29c26bd1acf03d2996173b4f40c46144 Mon Sep 17 00:00:00 2001 From: Torsten Kleiber Date: Sun, 6 Apr 2008 20:42:10 +0000 Subject: [PATCH] Release 4.2.1.0.0 git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@5974 51baf565-9d33-0410-a72c-fc3788e3496d --- .../etc/changelog.txt | 7 +- .../pmd-jdeveloper.jpr | 8 +- .../pmd/jdeveloper/FileStorage.java | 25 +- .../pmd/jdeveloper/IDEStorage.java | 15 +- .../sourceforge/pmd/jdeveloper/Plugin.java | 223 +++++++++--------- .../pmd/jdeveloper/RuleViolationPage.java | 5 +- .../pmd/jdeveloper/SelectedRules.java | 71 +++--- .../pmd/jdeveloper/SettingsException.java | 4 +- .../pmd/jdeveloper/SettingsPanel.java | 128 +++++----- .../sourceforge/pmd/jdeveloper/Version.java | 6 +- 10 files changed, 249 insertions(+), 243 deletions(-) diff --git a/pmd-jdeveloper.09.0.5-10.1.2/etc/changelog.txt b/pmd-jdeveloper.09.0.5-10.1.2/etc/changelog.txt index 9d4bdc6cd9..a415061915 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/etc/changelog.txt +++ b/pmd-jdeveloper.09.0.5-10.1.2/etc/changelog.txt @@ -1,5 +1,8 @@ -April 08, 2008 - 4.2: -Updated PMD version to 4.2. +April 06, 2008 - 4.2: +Updated PMD version to 4.2 for 9.0.5 to 10.1.3. +11g version is not available because of classloading errors for jaxen lib. +Apply some pmd rules on the plugin. +Export/Import PMD preferences in 10.1.3 Version. December 06, 2007 - 4.1: Updated PMD version to 4.1. diff --git a/pmd-jdeveloper.09.0.5-10.1.2/pmd-jdeveloper.jpr b/pmd-jdeveloper.09.0.5-10.1.2/pmd-jdeveloper.jpr index 8d0aedf3e3..aeede675b4 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/pmd-jdeveloper.jpr +++ b/pmd-jdeveloper.09.0.5-10.1.2/pmd-jdeveloper.jpr @@ -10,6 +10,10 @@ PMD 10-pmd-jdeveloper-webapp PMD 10-pmd-jdeveloper-context-root + + + oracle.jdeveloper.model.JavaSourceNode + oracle.jdevimpl.jar.JarFolder @@ -90,10 +94,6 @@ oracle.jdeveloper.model.JavaSourceNode - - - oracle.jdeveloper.model.JavaSourceNode - diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/FileStorage.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/FileStorage.java index 8ed815c588..a1c62a4f5a 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/FileStorage.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/FileStorage.java @@ -8,32 +8,33 @@ import java.util.Date; import java.util.Iterator; import java.util.Properties; + public class FileStorage implements SettingsStorage { - private File file; + private final transient File file; - public FileStorage(File file) { + public FileStorage(final File file) { this.file = file; } - public void save(Properties newProperties) throws SettingsException { + public void save(final Properties newProperties) throws SettingsException { try { - Properties savedProperties = new Properties(); + final Properties savedProperties = new Properties(); if (file.exists()) { - FileInputStream fis = new FileInputStream(file); + final FileInputStream fis = new FileInputStream(file); savedProperties.load(fis); fis.close(); } - for (Iterator i = newProperties.keySet().iterator(); i.hasNext(); + for (final Iterator i = newProperties.keySet().iterator(); i.hasNext(); ) { - String key = (String)i.next(); - String value = newProperties.getProperty(key); + final String key = (String)i.next(); + final String value = newProperties.getProperty(key); savedProperties.setProperty(key, value); } - FileOutputStream fos = new FileOutputStream(file); + final FileOutputStream fos = new FileOutputStream(file); savedProperties.store(fos, "PMD-JDeveloper rule selections " + new Date()); fos.close(); @@ -43,11 +44,11 @@ public class FileStorage implements SettingsStorage { } } - public String load(String key) throws SettingsException { + public String load(final String key) throws SettingsException { try { if (file.exists()) { - Properties properties = new Properties(); - FileInputStream fis = new FileInputStream(file); + final Properties properties = new Properties(); + final FileInputStream fis = new FileInputStream(file); properties.load(fis); fis.close(); return properties.getProperty(key); diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/IDEStorage.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/IDEStorage.java index d0a85c7450..40756819a8 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/IDEStorage.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/IDEStorage.java @@ -1,21 +1,22 @@ package net.sourceforge.pmd.jdeveloper; -import oracle.ide.Ide; - import java.util.Iterator; import java.util.Properties; +import oracle.ide.Ide; + + public class IDEStorage implements SettingsStorage { - public void save(Properties props) throws SettingsException { - for (Iterator i = props.keySet().iterator(); i.hasNext(); ) { - String key = (String)i.next(); - String value = props.getProperty(key); + public void save(final Properties props) throws SettingsException { + for (final Iterator i = props.keySet().iterator(); i.hasNext(); ) { + final String key = (String)i.next(); + final String value = props.getProperty(key); Ide.setProperty(key, value); } } - public String load(String key) throws SettingsException { + public String load(final String key) throws SettingsException { return Ide.getProperty(key); } } diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Plugin.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Plugin.java index ea33c2d37f..b14d47056a 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Plugin.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Plugin.java @@ -1,48 +1,5 @@ package net.sourceforge.pmd.jdeveloper; -import net.sourceforge.pmd.PMD; -import net.sourceforge.pmd.PMDException; -import net.sourceforge.pmd.Report; -import net.sourceforge.pmd.RuleContext; -import net.sourceforge.pmd.RuleViolation; -import net.sourceforge.pmd.cpd.CPD; -import net.sourceforge.pmd.cpd.LanguageFactory; -import net.sourceforge.pmd.cpd.Match; -import net.sourceforge.pmd.cpd.TokenEntry; - -import oracle.ide.addin.Addin; -import oracle.ide.AddinManager; -import oracle.ide.addin.Context; -import oracle.ide.Ide; -import oracle.jdeveloper.ceditor.CodeEditor; -import oracle.ide.config.IdeSettings; -import oracle.ide.ContextMenu; -import oracle.ide.addin.ContextMenuListener; -import oracle.ide.addin.Controller; -import oracle.ide.IdeAction; -import oracle.ide.editor.EditorManager; -import oracle.ide.layout.ViewId; -import oracle.ide.log.AbstractLogPage; -import oracle.ide.log.LogManager; -import oracle.ide.log.LogPage; -import oracle.ide.log.LogWindow; -import oracle.ide.model.Element; -import oracle.ide.model.Node; -import oracle.ide.model.Project; -import oracle.ide.model.PackageFolder; -import oracle.ide.navigator.NavigatorManager; -import oracle.ide.panels.Navigable; - -import oracle.jdeveloper.compiler.IdeLog; -import oracle.jdeveloper.compiler.IdeStorage; -import oracle.jdeveloper.model.JavaSourceNode; - -import javax.swing.*; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.TreeSelectionModel; - import java.awt.Component; import java.io.File; @@ -55,13 +12,59 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTree; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.TreeSelectionModel; + +import net.sourceforge.pmd.PMD; +import net.sourceforge.pmd.PMDException; +import net.sourceforge.pmd.Report; +import net.sourceforge.pmd.RuleContext; +import net.sourceforge.pmd.RuleViolation; +import net.sourceforge.pmd.cpd.CPD; +import net.sourceforge.pmd.cpd.LanguageFactory; +import net.sourceforge.pmd.cpd.Match; +import net.sourceforge.pmd.cpd.TokenEntry; + +import oracle.ide.AddinManager; +import oracle.ide.ContextMenu; +import oracle.ide.Ide; +import oracle.ide.IdeAction; +import oracle.ide.addin.Addin; +import oracle.ide.addin.Context; +import oracle.ide.addin.ContextMenuListener; +import oracle.ide.addin.Controller; +import oracle.ide.config.IdeSettings; +import oracle.ide.editor.EditorManager; +import oracle.ide.layout.ViewId; +import oracle.ide.log.AbstractLogPage; +import oracle.ide.log.LogManager; +import oracle.ide.log.LogPage; +import oracle.ide.log.LogWindow; +import oracle.ide.model.Element; +import oracle.ide.model.Node; +import oracle.ide.model.PackageFolder; +import oracle.ide.model.Project; +import oracle.ide.navigator.NavigatorManager; +import oracle.ide.panels.Navigable; + +import oracle.jdeveloper.ceditor.CodeEditor; +import oracle.jdeveloper.compiler.IdeLog; +import oracle.jdeveloper.compiler.IdeStorage; +import oracle.jdeveloper.model.JavaSourceNode; + public class Plugin implements Addin, Controller, ContextMenuListener { public class CPDViolationPage extends AbstractLogPage implements TreeSelectionListener { - private JScrollPane scrollPane; - private JTree tree; - private DefaultMutableTreeNode top; + private final transient JScrollPane scrollPane; + private final transient JTree tree; + private final transient DefaultMutableTreeNode top; public CPDViolationPage() { super(new ViewId("PMDPage", Plugin.CPD_TITLE), null, false); @@ -72,11 +75,11 @@ public class Plugin implements Addin, Controller, ContextMenuListener { scrollPane = new JScrollPane(tree); } - public void valueChanged(TreeSelectionEvent e) { - DefaultMutableTreeNode node = + public void valueChanged(final TreeSelectionEvent event) { + final DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); if (node != null && node.isLeaf()) { - CPDViolationWrapper nodeInfo = + final CPDViolationWrapper nodeInfo = (CPDViolationWrapper)node.getUserObject(); EditorManager.getEditorManager().openDefaultEditorInFrame(nodeInfo.file.getURL()); ((CodeEditor)EditorManager.getEditorManager().getCurrentEditor()).gotoLine(nodeInfo.mark.getBeginLine(), @@ -85,20 +88,20 @@ public class Plugin implements Addin, Controller, ContextMenuListener { } } - public void add(Match match) { - Node file1 = + public void add(final Match match) { + final Node file1 = (Node)cpdFileToNodeMap.get(match.getFirstMark().getTokenSrcID()); - DefaultMutableTreeNode matchNode = + final DefaultMutableTreeNode matchNode = new DefaultMutableTreeNode(file1.getShortLabel() + " contains a " + match.getLineCount() + " line block of duplicated code", true); top.add(matchNode); - for (Iterator i = match.iterator(); i.hasNext(); ) { - TokenEntry mark = (TokenEntry)i.next(); - Node file = (Node)cpdFileToNodeMap.get(mark.getTokenSrcID()); - DefaultMutableTreeNode markTreeNode = + for (final Iterator i = match.iterator(); i.hasNext(); ) { + final TokenEntry mark = (TokenEntry)i.next(); + final Node file = (Node)cpdFileToNodeMap.get(mark.getTokenSrcID()); + final DefaultMutableTreeNode markTreeNode = new DefaultMutableTreeNode(new CPDViolationWrapper(mark, file, file.getShortLabel() + @@ -114,10 +117,7 @@ public class Plugin implements Addin, Controller, ContextMenuListener { } public void clearAll() { - System.out.println("clearing nodes"); - System.out.println("before: top now has " + top.getChildCount()); top.removeAllChildren(); - System.out.println("after: top now has " + top.getChildCount()); tree.repaint(); scrollPane.repaint(); //tree.removeSelectionPath(new TreePath(new Object[] {top})); @@ -125,11 +125,11 @@ public class Plugin implements Addin, Controller, ContextMenuListener { } private static class CPDViolationWrapper { - private String label; - public Node file; - public TokenEntry mark; + private final transient String label; + public transient Node file; + public transient TokenEntry mark; - public CPDViolationWrapper(TokenEntry mark, Node file, String label) { + public CPDViolationWrapper(final TokenEntry mark, final Node file, final String label) { this.label = label; this.mark = mark; this.file = file; @@ -153,20 +153,20 @@ public class Plugin implements Addin, Controller, ContextMenuListener { public static final String PMD_TITLE = "PMD"; public static final String CPD_TITLE = "CPD"; - private JMenuItem pmdMenuItem; - private JMenuItem cpdMenuItem; + private transient JMenuItem pmdMenuItem; + private transient JMenuItem cpdMenuItem; - private RuleViolationPage ruleViolationPage; - private CPDViolationPage cpdViolationPage; + private transient RuleViolationPage ruleViolationPage; + private transient CPDViolationPage cpdViolationPage; - private boolean added; - private Map pmdFileToNodeMap = new HashMap(); // whew, this is kludgey - private Map cpdFileToNodeMap = new HashMap(); // whew, this is kludgey + private transient boolean added; + private final transient Map pmdFileToNodeMap = new HashMap(); // whew, this is kludgey + private final transient Map cpdFileToNodeMap = new HashMap(); // whew, this is kludgey // Addin public void initialize() { - IdeAction pmdAction = + final IdeAction pmdAction = IdeAction.get(RUN_PMD_CMD_ID, AddinManager.getAddinManager().getCommand(RUN_PMD_CMD_ID, RUN_PMD_CMD), PMD_TITLE, PMD_TITLE, null, null, null, true); @@ -220,7 +220,7 @@ public class Plugin implements Addin, Controller, ContextMenuListener { } - public boolean handleEvent(IdeAction ideAction, Context context) { + public boolean handleEvent(final IdeAction ideAction, final Context context) { if (!added) { LogManager.getLogManager().addPage(ruleViolationPage); LogManager.getLogManager().showLog(); @@ -229,20 +229,20 @@ public class Plugin implements Addin, Controller, ContextMenuListener { if (ideAction.getCommandId() == RUN_PMD_CMD_ID) { try { pmdFileToNodeMap.clear(); - PMD pmd = new PMD(); + final PMD pmd = new PMD(); Version.setJavaVersion(context, pmd); - SelectedRules rules = + final SelectedRules rules = new SelectedRules(SettingsPanel.createSettingsStorage()); - RuleContext ctx = new RuleContext(); + final RuleContext ctx = new RuleContext(); ctx.setReport(new Report()); if (context.getElement() instanceof PackageFolder) { - PackageFolder folder = + final PackageFolder folder = (PackageFolder)context.getElement(); checkTree(folder.getChildren(), pmd, rules, ctx); } else if (context.getElement() instanceof Project) { - Project project = (Project)context.getElement(); + final Project project = (Project)context.getElement(); checkTree(project.getChildren(), pmd, rules, ctx); } else if (context.getElement() instanceof JavaSourceNode) { ctx.setSourceCodeFilename(context.getDocument().getLongLabel()); @@ -273,23 +273,23 @@ public class Plugin implements Addin, Controller, ContextMenuListener { cpdFileToNodeMap.clear(); // TODO get minimum tokens from prefs panel - CPD cpd = + final CPD cpd = new CPD(100, new LanguageFactory().createLanguage("java")); // add all files to CPD if (context.getElement() instanceof PackageFolder) { - PackageFolder folder = + final PackageFolder folder = (PackageFolder)context.getElement(); glomToCPD(folder.getChildren(), cpd); } else if (context.getElement() instanceof Project) { - Project project = (Project)context.getElement(); + final Project project = (Project)context.getElement(); glomToCPD(project.getChildren(), cpd); - } /*else if (context.getElement() instanceof JavaSourceNode) { + } else if (context.getElement() instanceof JavaSourceNode) { cpd.add(new File(context.getDocument().getLongLabel())); cpdFileToNodeMap.put(context.getDocument().getLongLabel(), - context.getNode()); - }*/ + (JavaSourceNode)context.getElement()); + } cpd.go(); @@ -299,12 +299,12 @@ public class Plugin implements Addin, Controller, ContextMenuListener { JOptionPane.showMessageDialog(null, "No problems found", CPD_TITLE, JOptionPane.INFORMATION_MESSAGE); - LogPage page = LogManager.getLogManager().getMsgPage(); + final LogPage page = LogManager.getLogManager().getMsgPage(); if (page instanceof LogWindow) { ((LogWindow)page).show(); } } else { - for (Iterator i = cpd.getMatches(); i.hasNext(); ) { + for (final Iterator i = cpd.getMatches(); i.hasNext(); ) { cpdViolationPage.add((Match)i.next()); } } @@ -321,21 +321,20 @@ public class Plugin implements Addin, Controller, ContextMenuListener { return true; } - public boolean update(IdeAction ideAction, Context context) { + public boolean update(final IdeAction ideAction, final Context context) { return false; } - public void checkCommands(Context context, Controller controller) { - } // Controller // ContextMenuListener - public void poppingDown(ContextMenu contextMenu) { + public void poppingDown(final ContextMenu contextMenu) { + // Nothing to do } - public void poppingUp(ContextMenu contextMenu) { - Element doc = contextMenu.getContext().getElement(); + public void poppingUp(final ContextMenu contextMenu) { + final Element doc = contextMenu.getContext().getElement(); // RelativeDirectoryContextFolder -> a package if (doc instanceof Project || doc instanceof JavaSourceNode || doc instanceof PackageFolder) { @@ -344,7 +343,7 @@ public class Plugin implements Addin, Controller, ContextMenuListener { } } - public boolean handleDefaultAction(Context context) { + public boolean handleDefaultAction(final Context context) { return false; } // ContextMenuListener @@ -354,39 +353,39 @@ public class Plugin implements Addin, Controller, ContextMenuListener { } - private void render(RuleContext ctx) { + private void render(final RuleContext ctx) { ruleViolationPage.show(); ruleViolationPage.clearAll(); if (ctx.getReport().isEmpty()) { JOptionPane.showMessageDialog(null, "No problems found", PMD_TITLE, JOptionPane.INFORMATION_MESSAGE); - LogPage page = LogManager.getLogManager().getMsgPage(); + final LogPage page = LogManager.getLogManager().getMsgPage(); if (page instanceof LogWindow) { ((LogWindow)page).show(); } } else { - List list = new ArrayList(); - for (Iterator i = ctx.getReport().iterator(); i.hasNext(); ) { - RuleViolation rv = (RuleViolation)i.next(); - Node node = (Node)pmdFileToNodeMap.get(rv.getFilename()); + final List list = new ArrayList(); + for (final Iterator i = ctx.getReport().iterator(); i.hasNext(); ) { + final RuleViolation viol = (RuleViolation)i.next(); + final Node node = (Node)pmdFileToNodeMap.get(viol.getFilename()); list.add(new IdeLog.Message(Ide.getActiveWorkspace(), Ide.getActiveProject(), new IdeStorage(node), - rv.getDescription(), 2, - rv.getBeginLine(), - rv.getBeginColumn())); + viol.getDescription(), 2, + viol.getBeginLine(), + viol.getBeginColumn())); } ruleViolationPage.add(list); } } - private void glomToCPD(Iterator i, CPD cpd) throws IOException { - while (i.hasNext()) { - Object obj = i.next(); + private void glomToCPD(final Iterator iter, final CPD cpd) throws IOException { + while (iter.hasNext()) { + final Object obj = iter.next(); if (!(obj instanceof JavaSourceNode)) { continue; } - JavaSourceNode candidate = (JavaSourceNode)obj; + final JavaSourceNode candidate = (JavaSourceNode)obj; if (candidate.getLongLabel().endsWith(".java") && new File(candidate.getLongLabel()).exists()) { cpdFileToNodeMap.put(candidate.getLongLabel(), candidate); @@ -395,19 +394,19 @@ public class Plugin implements Addin, Controller, ContextMenuListener { } } - private void checkTree(Iterator i, PMD pmd, SelectedRules rules, - RuleContext ctx) throws IOException, PMDException { - while (i.hasNext()) { - Object obj = i.next(); + private void checkTree(final Iterator iter, final PMD pmd, final SelectedRules rules, + final RuleContext ctx) throws IOException, PMDException { + while (iter.hasNext()) { + final Object obj = iter.next(); if (!(obj instanceof JavaSourceNode)) { continue; } - JavaSourceNode candidate = (JavaSourceNode)obj; + final JavaSourceNode candidate = (JavaSourceNode)obj; if (candidate.getLongLabel().endsWith(".java") && new File(candidate.getLongLabel()).exists()) { pmdFileToNodeMap.put(candidate.getLongLabel(), candidate); ctx.setSourceCodeFilename(candidate.getLongLabel()); - FileInputStream fis = + final FileInputStream fis = new FileInputStream(new File(candidate.getLongLabel())); pmd.processFile(fis, rules.getSelectedRules(), ctx); fis.close(); @@ -416,7 +415,7 @@ public class Plugin implements Addin, Controller, ContextMenuListener { render(ctx); } - private static final void logMessage(String msg) { + private static final void logMessage(final String msg) { LogManager.getLogManager().showLog(); LogManager.getLogManager().getMsgPage().log(msg + "\n"); } diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/RuleViolationPage.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/RuleViolationPage.java index c94f793ce2..6ea5739c55 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/RuleViolationPage.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/RuleViolationPage.java @@ -1,8 +1,9 @@ package net.sourceforge.pmd.jdeveloper; +import java.util.List; + import oracle.jdeveloper.compiler.CompilerPage; -import java.util.List; public class RuleViolationPage extends CompilerPage { @@ -10,7 +11,7 @@ public class RuleViolationPage extends CompilerPage { super(Plugin.PMD_TITLE, Plugin.PMD_TITLE, null); } - public void add(List list) { + public void add(final List list) { super.logMsg(list); } } diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SelectedRules.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SelectedRules.java index 30042b6696..d9d0df2c1f 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SelectedRules.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SelectedRules.java @@ -1,35 +1,36 @@ package net.sourceforge.pmd.jdeveloper; -import net.sourceforge.pmd.Rule; -import net.sourceforge.pmd.RuleSet; -import net.sourceforge.pmd.RuleSetFactory; -import net.sourceforge.pmd.RuleSetNotFoundException; - -import javax.swing.*; - import java.util.Comparator; import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.TreeMap; +import javax.swing.JCheckBox; + +import net.sourceforge.pmd.Rule; +import net.sourceforge.pmd.RuleSet; +import net.sourceforge.pmd.RuleSetFactory; +import net.sourceforge.pmd.RuleSetNotFoundException; + + public class SelectedRules { // Rule -> JCheckBox - private Map rules = new TreeMap(new Comparator() { - public int compare(Object o1, Object o2) { - Rule r1 = (Rule)o1; - Rule r2 = (Rule)o2; - return r1.getName().compareTo(r2.getName()); + private final transient Map rules = new TreeMap(new Comparator() { + public int compare(final Object obj1, final Object obj2) { + final Rule rul1 = (Rule)obj1; + final Rule rul2 = (Rule)obj2; + return rul1.getName().compareTo(rul2.getName()); } }); - public SelectedRules(SettingsStorage settings) throws RuleSetNotFoundException { - RuleSetFactory rsf = new RuleSetFactory(); - for (Iterator i = rsf.getRegisteredRuleSets(); i.hasNext(); ) { - RuleSet rs = (RuleSet)i.next(); - for (Iterator j = rs.getRules().iterator(); j.hasNext(); ) { - Rule rule = (Rule)j.next(); + public SelectedRules(final SettingsStorage settings) throws RuleSetNotFoundException { + final RuleSetFactory rsf = new RuleSetFactory(); + for (final Iterator i = rsf.getRegisteredRuleSets(); i.hasNext(); ) { + final RuleSet rset = (RuleSet)i.next(); + for (final Iterator j = rset.getRules().iterator(); j.hasNext(); ) { + final Rule rule = (Rule)j.next(); rules.put(rule, createCheckBox(rule.getName(), settings)); } } @@ -39,10 +40,10 @@ public class SelectedRules { return rules.size(); } - public Rule getRule(JCheckBox candidate) { - for (Iterator i = rules.keySet().iterator(); i.hasNext(); ) { - Rule rule = (Rule)i.next(); - JCheckBox box = (JCheckBox)rules.get(rule); + public Rule getRule(final JCheckBox candidate) { + for (final Iterator i = rules.keySet().iterator(); i.hasNext(); ) { + final Rule rule = (Rule)i.next(); + final JCheckBox box = (JCheckBox)rules.get(rule); if (box.equals(candidate)) { return rule; } @@ -51,24 +52,24 @@ public class SelectedRules { candidate); } - public JCheckBox get(Object key) { + public JCheckBox get(final Object key) { return (JCheckBox)rules.get(key); } public Object[] getAllBoxes() { Object[] foo = new Object[rules.size()]; int idx = 0; - for (Iterator i = rules.values().iterator(); i.hasNext(); ) { + for (final Iterator i = rules.values().iterator(); i.hasNext(); ) { foo[idx] = i.next(); idx++; } return foo; } - public void save(SettingsStorage settings) throws SettingsException { - Properties properties = new Properties(); - for (Iterator i = rules.keySet().iterator(); i.hasNext(); ) { - Rule rule = (Rule)i.next(); + public void save(final SettingsStorage settings) throws SettingsException { + final Properties properties = new Properties(); + for (final Iterator i = rules.keySet().iterator(); i.hasNext(); ) { + final Rule rule = (Rule)i.next(); properties.setProperty("pmd.rule." + rule.getName(), String.valueOf(get(rule).isSelected())); } @@ -76,9 +77,9 @@ public class SelectedRules { } public RuleSet getSelectedRules() { - RuleSet newRuleSet = new RuleSet(); - for (Iterator i = rules.keySet().iterator(); i.hasNext(); ) { - Rule rule = (Rule)i.next(); + final RuleSet newRuleSet = new RuleSet(); + for (final Iterator i = rules.keySet().iterator(); i.hasNext(); ) { + final Rule rule = (Rule)i.next(); if (get(rule).isSelected()) { newRuleSet.addRule(rule); } @@ -86,8 +87,8 @@ public class SelectedRules { return newRuleSet; } - private JCheckBox createCheckBox(String name, SettingsStorage settings) { - JCheckBox box = new JCheckBox(name); + private JCheckBox createCheckBox(final String name, final SettingsStorage settings) { + final JCheckBox box = new JCheckBox(name); try { box.setSelected(load(settings, name)); } catch (SettingsException se) { @@ -96,8 +97,8 @@ public class SelectedRules { return box; } - private boolean load(SettingsStorage settings, - String name) throws SettingsException { + private boolean load(final SettingsStorage settings, + final String name) throws SettingsException { return Boolean.valueOf(settings.load("pmd.rule." + name)).booleanValue(); } diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsException.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsException.java index f4bee4adc6..cc4aae1e63 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsException.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsException.java @@ -1,7 +1,7 @@ package net.sourceforge.pmd.jdeveloper; public class SettingsException extends Exception { - public SettingsException(String ex) { - super(ex); + public SettingsException(final String exc) { + super(exc); } } diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsPanel.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsPanel.java index 5fb6fc5d82..d769268cc8 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsPanel.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/SettingsPanel.java @@ -27,29 +27,29 @@ import java.util.List; public class SettingsPanel extends DefaultTraversablePanel { private class FindListener implements ActionListener { - public void actionPerformed(ActionEvent evt) { - FileDialog fdlg = + public void actionPerformed(final ActionEvent evt) { + final FileDialog fdlg = new FileDialog(new Frame(), "Find", FileDialog.LOAD); fdlg.setVisible(true); - String selected = fdlg.getDirectory() + fdlg.getFile(); + final String selected = fdlg.getDirectory() + fdlg.getFile(); if (fdlg.getFile() == null) { return; } - selectedRulesSeparateFileNameField.setText(selected); + sepFileName.setText(selected); } } - public class CheckboxList extends JList { + private class CheckboxList extends JList { private class MyMouseAdapter extends MouseAdapter { - public void mouseEntered(MouseEvent e) { + public void mouseEntered(final MouseEvent evt) { // No action needed when mouse is entered } - public void mousePressed(MouseEvent e) { - int index = locationToIndex(e.getPoint()); + public void mousePressed(final MouseEvent evt) { + final int index = locationToIndex(evt.getPoint()); if (index != -1) { - JCheckBox box = (JCheckBox)getModel().getElementAt(index); + final JCheckBox box = (JCheckBox)getModel().getElementAt(index); box.setSelected(!box.isSelected()); repaint(); } @@ -58,16 +58,16 @@ public class SettingsPanel extends DefaultTraversablePanel { private class MyMouseMotionListener implements MouseMotionListener { - public void mouseDragged(MouseEvent e) { + public void mouseDragged(final MouseEvent evt) { // No dragging actions needed } - public void mouseMoved(MouseEvent e) { - int index = locationToIndex(e.getPoint()); + public void mouseMoved(final MouseEvent evt) { + final int index = locationToIndex(evt.getPoint()); if (index != -1) { - JCheckBox box = (JCheckBox)getModel().getElementAt(index); - List examples = rules.getRule(box).getExamples(); - StringBuffer examplesBuffer = new StringBuffer(); + final JCheckBox box = (JCheckBox)getModel().getElementAt(index); + final List examples = rules.getRule(box).getExamples(); + final StringBuffer examplesBuffer = new StringBuffer(); if (!examples.isEmpty()) { for (int i = 0; i < examples.size(); i++) { examplesBuffer.append(examples.get(i)); @@ -87,13 +87,13 @@ public class SettingsPanel extends DefaultTraversablePanel { } } - public class CheckboxListCellRenderer implements ListCellRenderer { - public Component getListCellRendererComponent(JList list, - Object value, - int index, - boolean isSelected, - boolean cellHasFocus) { - JCheckBox box = (JCheckBox)value; + private class CheckboxListCellRenderer implements ListCellRenderer { + public Component getListCellRendererComponent(final JList list, + final Object value, + final int index, + final boolean isSelected, + final boolean cellHasFocus) { + final JCheckBox box = (JCheckBox)value; box.setEnabled(isEnabled()); box.setFont(getFont()); box.setFocusPainted(false); @@ -105,7 +105,7 @@ public class SettingsPanel extends DefaultTraversablePanel { } } - public CheckboxList(Object[] args) { + public CheckboxList(final Object[] args) { super(args); setCellRenderer(new CheckboxListCellRenderer()); addMouseListener(new MyMouseAdapter()); @@ -113,25 +113,25 @@ public class SettingsPanel extends DefaultTraversablePanel { } } - public static final String RULE_SELECTIONS_STORED_SEPARATELY = + public static final String STORED_SEPARATELY = "pmd.settings.separate"; - public static final String RULE_SELECTIONS_FILENAME = + public static final String SEL_FILENAME = "pmd.settings.separate.name"; - private JTextArea exampleTextArea = new JTextArea(10, 50); - private JCheckBox selectedRulesStoredSeparatelyBox = - new JCheckBox("", Boolean.valueOf(Ide.getProperty(RULE_SELECTIONS_STORED_SEPARATELY)).booleanValue()); - private JTextField selectedRulesSeparateFileNameField = new JTextField(30); - private SelectedRules rules; + private final transient JTextArea exampleTextArea = new JTextArea(10, 50); + private final transient JCheckBox storedSepBox = + new JCheckBox("", Boolean.valueOf(Ide.getProperty(STORED_SEPARATELY)).booleanValue()); + private final transient JTextField sepFileName = new JTextField(30); + private transient SelectedRules rules; public static SettingsStorage createSettingsStorage() { - if (Boolean.valueOf(Ide.getProperty(RULE_SELECTIONS_STORED_SEPARATELY)).booleanValue()) { - return new FileStorage(new File(Ide.getProperty(RULE_SELECTIONS_FILENAME))); + if (Boolean.valueOf(Ide.getProperty(STORED_SEPARATELY)).booleanValue()) { + return new FileStorage(new File(Ide.getProperty(SEL_FILENAME))); } return new IDEStorage(); } - public void onEntry(TraversableContext tc) { + public void onEntry(final TraversableContext tcon) { removeAll(); try { rules = new SelectedRules(createSettingsStorage()); @@ -139,67 +139,67 @@ public class SettingsPanel extends DefaultTraversablePanel { rsne.printStackTrace(); } - JPanel mainPanel = new JPanel(new BorderLayout()); + final JPanel mainPanel = new JPanel(new BorderLayout()); mainPanel.add(createTopPanel(), BorderLayout.NORTH); mainPanel.add(createRulesSelectionPanel(), BorderLayout.SOUTH); add(mainPanel); } private JPanel createRulesSelectionPanel() { - JPanel checkBoxesPanel = new JPanel(); + final JPanel checkBoxesPanel = new JPanel(); checkBoxesPanel.setBorder(BorderFactory.createTitledBorder("Rules")); - JList rulesList = new CheckboxList(rules.getAllBoxes()); + final JList rulesList = new CheckboxList(rules.getAllBoxes()); rulesList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); checkBoxesPanel.add(new JScrollPane(rulesList), BorderLayout.NORTH); - JPanel examplePanel = new JPanel(); + final JPanel examplePanel = new JPanel(); examplePanel.setBorder(BorderFactory.createTitledBorder("Example")); examplePanel.add(new JScrollPane(exampleTextArea)); - JPanel rulesSelectionPanel = new JPanel(); - rulesSelectionPanel.setLayout(new BorderLayout()); - rulesSelectionPanel.add(checkBoxesPanel, BorderLayout.NORTH); - rulesSelectionPanel.add(examplePanel, BorderLayout.CENTER); - return rulesSelectionPanel; + final JPanel rulesSelPanel = new JPanel(); + rulesSelPanel.setLayout(new BorderLayout()); + rulesSelPanel.add(checkBoxesPanel, BorderLayout.NORTH); + rulesSelPanel.add(examplePanel, BorderLayout.CENTER); + return rulesSelPanel; } private JPanel createTopPanel() { - selectedRulesSeparateFileNameField.setText(Ide.getProperty(RULE_SELECTIONS_FILENAME)); - selectedRulesStoredSeparatelyBox.setSelected(Boolean.valueOf(Ide.getProperty(RULE_SELECTIONS_STORED_SEPARATELY)).booleanValue()); + sepFileName.setText(Ide.getProperty(SEL_FILENAME)); + storedSepBox.setSelected(Boolean.valueOf(Ide.getProperty(STORED_SEPARATELY)).booleanValue()); - JPanel topPanel = new JPanel(new BorderLayout()); + final JPanel topPanel = new JPanel(new BorderLayout()); topPanel.add(new JLabel(" InfoEther(tm) PMD JDeveloper plugin"), BorderLayout.NORTH); - JPanel customStoragePanel = new JPanel(new BorderLayout()); - customStoragePanel.setBorder(BorderFactory.createTitledBorder("Settings storage")); + final JPanel custStorPanel = new JPanel(new BorderLayout()); + custStorPanel.setBorder(BorderFactory.createTitledBorder("Settings storage")); - JPanel customStorageCheckBoxPanel = new JPanel(); - customStorageCheckBoxPanel.add(new JLabel("Use centrally managed rule settings?")); - customStorageCheckBoxPanel.add(selectedRulesStoredSeparatelyBox); - customStoragePanel.add(customStorageCheckBoxPanel, BorderLayout.NORTH); + final JPanel custStorCbPanel = new JPanel(); + custStorCbPanel.add(new JLabel("Use centrally managed rule settings?")); + custStorCbPanel.add(storedSepBox); + custStorPanel.add(custStorCbPanel, BorderLayout.NORTH); - JPanel customStorageTextFieldPanel = new JPanel(); - customStorageTextFieldPanel.add(new JLabel("File:")); - customStorageTextFieldPanel.add(selectedRulesSeparateFileNameField); - JButton findButton = new JButton("Find file"); + final JPanel custStorTfPanel = new JPanel(); + custStorTfPanel.add(new JLabel("File:")); + custStorTfPanel.add(sepFileName); + final JButton findButton = new JButton("Find file"); findButton.addActionListener(new FindListener()); - customStorageTextFieldPanel.add(findButton); + custStorTfPanel.add(findButton); - customStoragePanel.add(customStorageTextFieldPanel, + custStorPanel.add(custStorTfPanel, BorderLayout.SOUTH); - topPanel.add(customStoragePanel, BorderLayout.CENTER); + topPanel.add(custStorPanel, BorderLayout.CENTER); return topPanel; } - public void onExit(TraversableContext tc) { - Ide.setProperty(RULE_SELECTIONS_STORED_SEPARATELY, - String.valueOf(selectedRulesStoredSeparatelyBox.isSelected())); - Ide.setProperty(RULE_SELECTIONS_FILENAME, - selectedRulesSeparateFileNameField.getText()); + public void onExit(final TraversableContext tcon) { + Ide.setProperty(STORED_SEPARATELY, + String.valueOf(storedSepBox.isSelected())); + Ide.setProperty(SEL_FILENAME, + sepFileName.getText()); try { rules.save(createSettingsStorage()); } catch (SettingsException se) { JOptionPane.showMessageDialog(null, "Can't save selected rules to the file " + - selectedRulesSeparateFileNameField.getText() + + sepFileName.getText() + ":" + se.getMessage(), "Can't save settings", JOptionPane.ERROR_MESSAGE); diff --git a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Version.java b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Version.java index 410bd28dba..1ce4aaa363 100644 --- a/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Version.java +++ b/pmd-jdeveloper.09.0.5-10.1.2/src/net/sourceforge/pmd/jdeveloper/Version.java @@ -9,9 +9,9 @@ import oracle.jdeveloper.model.JProject; class Version { - public static void setJavaVersion(Context context, PMD pmd) { - JProject project = (JProject) context.getProject(); - String source = project.getActiveConfiguration().getJdkVersionNumber().toString(); + public static void setJavaVersion(final Context context, final PMD pmd) { + final JProject project = (JProject) context.getProject(); + final String source = project.getActiveConfiguration().getJdkVersionNumber().toString(); if (source.startsWith("1.6")) { pmd.setJavaVersion(SourceType.JAVA_16); } else if (source.startsWith("1.5")) {