Hi,

Another quick one.  AntTypeDefinition.getTypeClass
if(clazz != null) {
 return clazz;
}
try {

}catch() etc etc

return clazz;

I've reversed the logic and now there's only one return from this method. ie

if (clazz == null) {
try {
[loads of things]
} catch() {

return clazz;

It's not a fix or anything, but IM(very humble)O having one return makes the code easier to understand.

Included test case.

Kev
Index: AntTypeDefinition.java
===================================================================
RCS file: 
/home/cvspublic/ant/src/main/org/apache/tools/ant/AntTypeDefinition.java,v
retrieving revision 1.14
diff -u -r1.14 AntTypeDefinition.java
--- AntTypeDefinition.java      14 Sep 2004 12:45:12 -0000      1.14
+++ AntTypeDefinition.java      4 Nov 2004 06:00:16 -0000
@@ -152,27 +152,25 @@
      * @return the type of the definition
      */
     public Class getTypeClass(Project project) {
-        if (clazz != null) {
-            return clazz;
-        }
-
-        try {
-            if (classLoader == null) {
-                clazz = Class.forName(className);
-            } else {
-                clazz = classLoader.loadClass(className);
-            }
-        } catch (NoClassDefFoundError ncdfe) {
-            project.log("Could not load a dependent class ("
+        if (clazz == null) {
+            try {
+                if (classLoader == null) {
+                    clazz = Class.forName(className);
+                } else {
+                    clazz = classLoader.loadClass(className);
+                }
+            } catch (NoClassDefFoundError ncdfe) {
+                project.log("Could not load a dependent class ("
                         + ncdfe.getMessage() + ") for type "
                         + name, Project.MSG_DEBUG);
-        } catch (ClassNotFoundException cnfe) {
-            project.log("Could not load class (" + className
+            } catch (ClassNotFoundException cnfe) {
+                project.log("Could not load class (" + className
                         + ") for type " + name, Project.MSG_DEBUG);
-        }
+            }
+        } 
         return clazz;
     }
-
+   
     /**
      * create an instance of the definition.
      * The instance may be wrapped in a proxy class.
Index: AntTypeDefinitionTest.java
===================================================================
RCS file: AntTypeDefinitionTest.java
diff -N AntTypeDefinitionTest.java
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ AntTypeDefinitionTest.java  1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,82 @@
+package org.apache.tools.ant;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+
+public class AntTypeDefinitionTest extends TestCase {
+
+    private String name;
+    private Class clazz;
+    private ClassLoader classLoader;
+    private String className;
+    private AntTypeDefinition atd;
+    private Project project;
+    
+    /**
+        * Constructor
+        */     
+       public AntTypeDefinitionTest(String name) {
+               super(name);
+       }
+    
+    public static Test suite() {
+               TestSuite suite = new TestSuite();
+               suite.addTest(new AntTypeDefinitionTest("testGetTypeClass"));
+               return suite;
+       }
+    
+    public Class oldGetTypeClass(Project project) {
+        if (clazz != null) {
+            return clazz;
+        }
+
+        try {
+            if (classLoader == null) {
+                clazz = Class.forName(className);
+            } else {
+                clazz = classLoader.loadClass(className);
+            }
+        } catch (NoClassDefFoundError ncdfe) {
+            project.log("Could not load a dependent class ("
+                        + ncdfe.getMessage() + ") for type "
+                        + name, Project.MSG_DEBUG);
+        } catch (ClassNotFoundException cnfe) {
+            project.log("Could not load class (" + className
+                        + ") for type " + name, Project.MSG_DEBUG);
+        }
+        return clazz;
+    }
+    
+    /*
+     * @see TestCase#setUp()
+     */
+    protected void setUp() throws Exception {
+        super.setUp();
+        this.className = this.getName();
+
+        atd = new AntTypeDefinition();
+        atd.setClass(clazz);
+        atd.setClassName(className);
+        project = new Project();
+        
+    }
+
+    /*
+     * @see TestCase#tearDown()
+     */
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+    
+    public void testGetTypeClass() {
+        try {
+            assertEquals(oldGetTypeClass(project), atd.getTypeClass(project));
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+
+}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to