Browse Source

Added some (deep) clone methods.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267900 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 25 years ago
parent
commit
ab761fc434
3 changed files with 25 additions and 3 deletions
  1. +8
    -1
      src/main/org/apache/tools/ant/types/Commandline.java
  2. +10
    -1
      src/main/org/apache/tools/ant/types/CommandlineJava.java
  3. +7
    -1
      src/main/org/apache/tools/ant/types/Path.java

+ 8
- 1
src/main/org/apache/tools/ant/types/Commandline.java View File

@@ -82,7 +82,7 @@ import java.util.StringTokenizer;
* @author thomas.haas@softwired-inc.com
* @author <a href="mailto:stefan.bodewig@megabit.net">Stefan Bodewig</a>
*/
public class Commandline {
public class Commandline implements Clonable {

private Vector arguments = new Vector();
private String executable = null;
@@ -335,4 +335,11 @@ public class Commandline {
return getCommandline().length;
}

public Object clone() {
Commandline c = new Commandline();
c.setExecutable(executable);
c.addArguments(getArguments());
return c;
}

}

+ 10
- 1
src/main/org/apache/tools/ant/types/CommandlineJava.java View File

@@ -60,7 +60,7 @@ import org.apache.tools.ant.Project;
*
* @author thomas.haas@softwired-inc.com
*/
public class CommandlineJava {
public class CommandlineJava implements Cloneable {

private Commandline vmCommand = new Commandline();
private Commandline javaCommand = new Commandline();
@@ -151,4 +151,13 @@ public class CommandlineJava {
public Path getClasspath() {
return classpath;
}

public Object clone() {
CommandlineJava c = new CommandlineJava();
c.vmCommand = (Commandline) vmCommand.clone();
c.javaCommand = (Commandline) javaCommand.clone();
c.classpath = (Path) classpath.clone();
c.vmVersion = vmVersion;
return c;
}
}

+ 7
- 1
src/main/org/apache/tools/ant/types/Path.java View File

@@ -93,7 +93,7 @@ import java.text.StringCharacterIterator;
* @author <a href="mailto:stefan.bodewig@megabit.net">Stefan Bodewig</a>
*/

public class Path {
public class Path implements Cloneable {

private Vector elements;
private Project project;
@@ -309,6 +309,12 @@ public class Path {
return list().length;
}

public Object clone() {
Path p = new Path(project);
p.append(this);
return p;
}

private static String resolveFile(Project project, String relativeName) {
if (project != null) {
return project.resolveFile(relativeName).getAbsolutePath();


Loading…
Cancel
Save