You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@locus.apache.org on 2000/07/14 09:14:44 UTC

cvs commit: jakarta-ant/src/testcases/org/apache/tools/ant PathTest.java

bodewig     00/07/14 00:14:44

  Modified:    src/main/org/apache/tools/ant Path.java
               src/main/org/apache/tools/ant/taskdefs Java.java
               src/testcases/org/apache/tools/ant PathTest.java
  Log:
  Remove duplicate entries in Path.
  
  Revision  Changes    Path
  1.2       +20 -2     jakarta-ant/src/main/org/apache/tools/ant/Path.java
  
  Index: Path.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/Path.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Path.java	2000/07/13 16:35:04	1.1
  +++ Path.java	2000/07/14 07:14:42	1.2
  @@ -107,19 +107,37 @@
        */
       public void setLocation(String location) {
           if (location != null && location.length() > 0) {
  -            definition.addElement(translateFile(location));
  +            String element = translateFile(location);
  +            if (definition.indexOf(element) == -1) {
  +                definition.addElement(element);
  +            }
           }
       }
   
   
       /**
  +     * Append the contents of the other Path instance to this.
  +     */
  +    public void append(Path other) {
  +        String[] l = other.list();
  +        for (int i=0; i<l.length; i++) {
  +            if (definition.indexOf(l[i]) == -1) {
  +                definition.addElement(l[i]);
  +            }
  +        }
  +    }
  +
  +    /**
        * Parses a path definition and creates single PathElements.
        * @param path the path definition.
        */
       public void setPath(String path) {
           final Vector elements = translatePath(path);
           for (int i=0; i < elements.size(); i++) {
  -            definition.addElement(elements.elementAt(i));
  +            String element = (String) elements.elementAt(i);
  +            if (definition.indexOf(element) == -1) {
  +                definition.addElement(element);
  +            }
           }
       }
   
  
  
  
  1.10      +1 -1      jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Java.java
  
  Index: Java.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Java.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Java.java	2000/07/13 16:35:06	1.9
  +++ Java.java	2000/07/14 07:14:42	1.10
  @@ -130,7 +130,7 @@
           if (this.classpath == null) {
               this.classpath = s;
           } else {
  -            this.classpath.setPath(s.toString());
  +            this.classpath.append(s);
           }
       }
       
  
  
  
  1.2       +33 -0     jakarta-ant/src/testcases/org/apache/tools/ant/PathTest.java
  
  Index: PathTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/testcases/org/apache/tools/ant/PathTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PathTest.java	2000/07/13 16:35:08	1.1
  +++ PathTest.java	2000/07/14 07:14:43	1.2
  @@ -167,6 +167,39 @@
           p.setPath("\\d;\\e");
           l = p.list();
           assertEquals("5 after setPath", 5, l.length);
  +        p.append(new Path("\\f"));
  +        l = p.list();
  +        assertEquals("6 after append", 6, l.length);
  +    }
  +
  +    public void testEmpyPath() {
  +        Path p = new Path("");
  +        String[] l = p.list();
  +        assertEquals("0 after construction", 0, l.length);
  +        p.setLocation("");
  +        l = p.list();
  +        assertEquals("0 after setLocation", 0, l.length);
  +        p.setPath("");
  +        l = p.list();
  +        assertEquals("0 after setPath", 0, l.length);
  +        p.append(new Path());
  +        l = p.list();
  +        assertEquals("0 after append", 0, l.length);
  +    }
  +
  +    public void testUnique() {
  +        Path p = new Path("/a:/a");
  +        String[] l = p.list();
  +        assertEquals("1 after construction", 1, l.length);
  +        p.setLocation("\\a");
  +        l = p.list();
  +        assertEquals("1 after setLocation", 1, l.length);
  +        p.setPath("\\a;/a");
  +        l = p.list();
  +        assertEquals("1 after setPath", 1, l.length);
  +        p.append(new Path("/a;\\a:\\a"));
  +        l = p.list();
  +        assertEquals("1 after append", 1, l.length);
       }
   
   }