From 80a80939c92fbf440aa98771dc5036b00471d8bb Mon Sep 17 00:00:00 2001 From: Brian Remedios Date: Sat, 9 Aug 2008 05:51:26 +0000 Subject: [PATCH] minor refactorings & performance tweaks git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@6345 51baf565-9d33-0410-a72c-fc3788e3496d --- .../sourceforge/pmd/dcd/ClassLoaderUtil.java | 21 +++++++-------- .../sourceforge/pmd/dcd/UsageNodeVisitor.java | 26 ++++++++++++------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/pmd/src/net/sourceforge/pmd/dcd/ClassLoaderUtil.java b/pmd/src/net/sourceforge/pmd/dcd/ClassLoaderUtil.java index 7ccb9af526..a8f49c5c5a 100644 --- a/pmd/src/net/sourceforge/pmd/dcd/ClassLoaderUtil.java +++ b/pmd/src/net/sourceforge/pmd/dcd/ClassLoaderUtil.java @@ -107,7 +107,7 @@ public class ClassLoaderUtil { // Okay } } - throw new NoSuchMethodException(type.getName() + "." + getMethodSignature(name, parameterTypes)); + throw new NoSuchMethodException(type.getName() + '.' + getMethodSignature(name, parameterTypes)); } } @@ -120,19 +120,16 @@ public class ClassLoaderUtil { } public static String getMethodSignature(String name, Class... parameterTypes) { - StringBuilder builder = new StringBuilder(); - builder.append(name); + StringBuilder builder = new StringBuilder(name); if (!(name.equals(CLINIT) || name.equals(INIT))) { - builder.append("("); - if (parameterTypes != null) { - for (int i = 0; i < parameterTypes.length; i++) { - if (i > 0) { - builder.append(", "); - } - builder.append(parameterTypes[i].getName()); - } + builder.append('('); + if (parameterTypes != null && parameterTypes.length > 0) { + builder.append(parameterTypes[0].getName()); + for (int i = 1; i < parameterTypes.length; i++) { + builder.append(", ").append(parameterTypes[i].getName()); + } } - builder.append(")"); + builder.append(')'); } return builder.toString(); } diff --git a/pmd/src/net/sourceforge/pmd/dcd/UsageNodeVisitor.java b/pmd/src/net/sourceforge/pmd/dcd/UsageNodeVisitor.java index a42f17d284..52b34fd708 100644 --- a/pmd/src/net/sourceforge/pmd/dcd/UsageNodeVisitor.java +++ b/pmd/src/net/sourceforge/pmd/dcd/UsageNodeVisitor.java @@ -3,6 +3,7 @@ */ package net.sourceforge.pmd.dcd; +import java.lang.reflect.Method; import java.lang.reflect.Modifier; import net.sourceforge.pmd.dcd.graph.ClassNode; @@ -21,7 +22,7 @@ import net.sourceforge.pmd.dcd.graph.UsageGraph; public class UsageNodeVisitor extends NodeVisitorAdapter { /** - * Configuration options for usage analysus. + * Configuration options for usage analysis. */ public static final class Options { private boolean ignoreClassAnonymous = true; @@ -178,6 +179,20 @@ public class UsageNodeVisitor extends NodeVisitorAdapter { return super.visit(constructorNode, data); } + private static boolean isMainMethod(MethodNode node) { + + final Method method = node.getMember(); + + return method.getName().equals("main") + && Modifier.isPublic(method.getModifiers()) + && Modifier.isStatic(method.getModifiers()) + && method.getReturnType() == Void.TYPE + && method.getParameterTypes().length == 1 + && method.getParameterTypes()[0].isArray() + && method.getParameterTypes()[0].getComponentType().equals(java.lang.String.class); + } + + public Object visit(MethodNode methodNode, Object data) { if (methodNode.getUsers().isEmpty()) { boolean log = true; @@ -194,14 +209,7 @@ public class UsageNodeVisitor extends NodeVisitorAdapter { } } if (options.isIgnoreMethodMain()) { - if (methodNode.getMember().getName().equals("main") - && Modifier.isPublic(methodNode.getMember().getModifiers()) - && Modifier.isStatic(methodNode.getMember().getModifiers()) - && methodNode.getMember().getReturnType() == Void.TYPE - && methodNode.getMember().getParameterTypes().length == 1 - && methodNode.getMember().getParameterTypes()[0].isArray() - && methodNode.getMember().getParameterTypes()[0].getComponentType().equals( - java.lang.String.class)) { + if (isMainMethod(methodNode)) { ignore("method public static void main(String[])", methodNode); log = false; }