- changed a for loop
- added a new private method to check for non null params
- used new method in the appropriate places

Unit test for two changes

Kev
Index: AbstractCvsTask.java
===================================================================
RCS file: 
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java,v
retrieving revision 1.35
diff -u -r1.35 AbstractCvsTask.java
--- AbstractCvsTask.java        17 Jul 2004 15:10:11 -0000      1.35
+++ AbstractCvsTask.java        28 Dec 2004 11:20:36 -0000
@@ -390,7 +390,7 @@
         }
 
         try {
-            for (int i = 0; i < vecCommandlines.size(); i++) {
+            for (int i = 0, size = vecCommandlines.size(); i < size ; i++) {
                 this.runCommand((Commandline) vecCommandlines.elementAt(i));
             }
         } finally {
@@ -440,21 +440,27 @@
         return stringBuffer.toString();
     }
 
+    //added because same functionality is checked 4 times in this source file
+    //another method call, so maybe a hit in performance
+    private static boolean isNonNullParam(final String paramToCheck) {
+       boolean res = false;
+       if ((paramToCheck != null) && (paramToCheck.trim().length() > 0)) {
+               res = true; //real param
+       }
+       return res;
+    }
+    
     /**
      * The CVSROOT variable.
-     *
      * @param root the CVSROOT variable
      */
-    public void setCvsRoot(String root) {
-
+    public void setCvsRoot(final String root) {
         // Check if not real cvsroot => set it to null
-        if (root != null) {
-            if (root.trim().equals("")) {
-                root = null;
-            }
+        if (isNonNullParam(root)) {
+            this.cvsRoot = root;
+        } else {
+               this.cvsRoot = null;
         }
-
-        this.cvsRoot = root;
     }
 
     /**
@@ -462,24 +468,20 @@
      * @return CVSROOT
      */
     public String getCvsRoot() {
-
         return this.cvsRoot;
     }
 
     /**
      * The CVS_RSH variable.
-     *
      * @param rsh the CVS_RSH variable
      */
-    public void setCvsRsh(String rsh) {
-        // Check if not real cvsrsh => set it to null
-        if (rsh != null) {
-            if (rsh.trim().equals("")) {
-                rsh = null;
-            }
+    public void setCvsRsh(final String rsh) {
+        // Check if not real cvsroot => set it to null
+        if (isNonNullParam(rsh)) {
+            this.cvsRsh = rsh;
+        } else {
+               this.cvsRsh = null;
         }
-
-        this.cvsRsh = rsh;
     }
 
     /**
@@ -487,14 +489,12 @@
      * @return the CVS_RSH variable
      */
     public String getCvsRsh() {
-
         return this.cvsRsh;
     }
 
     /**
      * Port used by CVS to communicate with the server.
-     *
-     * @param port port of CVS
+      * @param port port of CVS
      */
     public void setPort(int port) {
         this.port = port;
@@ -505,7 +505,6 @@
      * @return the port of CVS
      */
     public int getPort() {
-
         return this.port;
     }
 
@@ -542,7 +541,6 @@
 
     /**
      * get the file where the checked out files should be placed
-     *
      * @return directory where the checked out files should be placed
      */
     public File getDest() {
@@ -552,7 +550,6 @@
 
     /**
      * The package/module to operate upon.
-     *
      * @param p package or module to operate upon
      */
     public void setPackage(String p) {
@@ -561,11 +558,9 @@
 
     /**
      * access the package or module to operate upon
-     *
      * @return package/module
      */
     public String getPackage() {
-
         return this.cvsPackage;
     }
     /**
@@ -582,8 +577,8 @@
      * @param p tag
      */
     public void setTag(String p) {
-        // Check if not real tag => set it to null
-        if (p != null && p.trim().length() > 0) {
+        //If not a real tag (null/"") don't add to commandLine
+        if (isNonNullParam(p)) {
             tag = p;
             addCommandArgument("-r" + p);
         }
@@ -619,7 +614,8 @@
      * see man cvs
      */
     public void setDate(String p) {
-        if (p != null && p.trim().length() > 0) {
+       //don't add if null/""
+        if (isNonNullParam(p)) {
             addCommandArgument("-D");
             addCommandArgument(p);
         }
Index: AbstractCvsTaskTest.java
===================================================================
RCS file: AbstractCvsTaskTest.java
diff -N AbstractCvsTaskTest.java
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ AbstractCvsTaskTest.java    1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,109 @@
+/*
+ * Created on 28-Dec-2004
+ */
+package org.apache.tools.ant.taskdefs;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * @author it-kevin
+ *
+ */
+public class AbstractCvsTaskTest extends TestCase {
+
+       private String cvsRoot;
+       private String rsh;
+       private Cvs cvs = new Cvs();
+       
+       /*
+        * @see TestCase#setUp()
+        */
+       protected void setUp() throws Exception {
+               super.setUp();
+       }
+
+       /*
+        * @see TestCase#tearDown()
+        */
+       protected void tearDown() throws Exception {
+               super.tearDown();
+       }
+
+       /**
+        * Constructor for AbstractCvsTaskTest.
+        * @param arg0
+        */
+       public AbstractCvsTaskTest(String arg0) {
+               super(arg0);
+       }
+       
+       public static Test suite() {
+               TestSuite suite = new TestSuite();
+               suite.addTest(new AbstractCvsTaskTest("testSetCvsRoot"));
+               suite.addTest(new AbstractCvsTaskTest("testSetCvsRsh"));
+               return suite;
+       }
+       
+       public void setCvsRoot(final String root) {
+       
+        // Check if not real cvsroot => set it to null
+        if ((root != null) && (!root.trim().equals(""))) {
+            this.cvsRoot = root;
+        } else {
+               this.cvsRoot = null;
+        }
+    }
+       
+       public void setCvsRsh(final String rsh) {
+       
+        // Check if not real cvsroot => set it to null
+        if ((rsh != null) && (!rsh.trim().equals(""))) {
+            this.rsh = rsh;
+        } else {
+               this.rsh = null;
+        }
+    }
+       
+       public void testSetCvsRoot() {
+               try {
+                       //null
+                       this.setCvsRoot(null);
+                       cvs.setCvsRoot(null);
+                       assertEquals(cvsRoot, cvs.getCvsRoot());
+                       //"" empty string
+                       this.setCvsRoot("");
+                       cvs.setCvsRoot("");
+                       assertEquals(cvsRoot, cvs.getCvsRoot());
+                       //any other string use ant/apache cvs
+                       this.setCvsRoot("/home/cvspublic");
+                       cvs.setCvsRoot("/home/cvspublic");
+                       assertEquals(cvsRoot, cvs.getCvsRoot());
+               } catch (Exception e) {
+                       e.printStackTrace();
+                       fail();
+               }
+       }
+       
+       public void testSetCvsRsh() {
+               try {
+                       //null
+                       this.setCvsRsh(null);
+                       cvs.setCvsRsh(null);
+                       assertEquals(rsh, cvs.getCvsRsh());
+                       //"" empty string
+                       this.setCvsRsh("");
+                       cvs.setCvsRsh("");
+                       assertEquals(rsh, cvs.getCvsRsh());
+                       //any other string use ant/apache cvs
+                       this.setCvsRsh("/home/cvspublic");
+                       cvs.setCvsRsh("/home/cvspublic");
+                       assertEquals(rsh, cvs.getCvsRsh());
+               } catch (Exception e) {
+                       e.printStackTrace();
+                       fail();
+               }
+       }
+
+}

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

Reply via email to