|
|
@@ -37,6 +37,7 @@ import org.apache.tools.ant.types.EnumeratedAttribute; |
|
|
import org.apache.tools.ant.types.Mapper; |
|
|
import org.apache.tools.ant.types.Mapper; |
|
|
import org.apache.tools.ant.types.Path; |
|
|
import org.apache.tools.ant.types.Path; |
|
|
import org.apache.tools.ant.types.Reference; |
|
|
import org.apache.tools.ant.types.Reference; |
|
|
|
|
|
import org.apache.tools.ant.types.Resource; |
|
|
import org.apache.tools.ant.types.ResourceCollection; |
|
|
import org.apache.tools.ant.types.ResourceCollection; |
|
|
import org.apache.tools.ant.types.resources.Resources; |
|
|
import org.apache.tools.ant.types.resources.Resources; |
|
|
import org.apache.tools.ant.types.resources.Union; |
|
|
import org.apache.tools.ant.types.resources.Union; |
|
|
@@ -62,19 +63,19 @@ public class PathConvert extends Task { |
|
|
/** |
|
|
/** |
|
|
* Path to be converted |
|
|
* Path to be converted |
|
|
*/ |
|
|
*/ |
|
|
private Resources path = null; |
|
|
|
|
|
|
|
|
private Resources path; |
|
|
/** |
|
|
/** |
|
|
* Reference to path/fileset to convert |
|
|
* Reference to path/fileset to convert |
|
|
*/ |
|
|
*/ |
|
|
private Reference refid = null; |
|
|
|
|
|
|
|
|
private Reference refid; |
|
|
/** |
|
|
/** |
|
|
* The target OS type |
|
|
* The target OS type |
|
|
*/ |
|
|
*/ |
|
|
private String targetOS = null; |
|
|
|
|
|
|
|
|
private String targetOS; |
|
|
/** |
|
|
/** |
|
|
* Set when targetOS is set to windows |
|
|
* Set when targetOS is set to windows |
|
|
*/ |
|
|
*/ |
|
|
private boolean targetWindows = false; |
|
|
|
|
|
|
|
|
private boolean targetWindows; |
|
|
/** |
|
|
/** |
|
|
* Set if we should create a new property even if the result is empty |
|
|
* Set if we should create a new property even if the result is empty |
|
|
*/ |
|
|
*/ |
|
|
@@ -82,7 +83,7 @@ public class PathConvert extends Task { |
|
|
/** |
|
|
/** |
|
|
* The property to receive the conversion |
|
|
* The property to receive the conversion |
|
|
*/ |
|
|
*/ |
|
|
private String property = null; |
|
|
|
|
|
|
|
|
private String property; |
|
|
/** |
|
|
/** |
|
|
* Path prefix map |
|
|
* Path prefix map |
|
|
*/ |
|
|
*/ |
|
|
@@ -90,17 +91,20 @@ public class PathConvert extends Task { |
|
|
/** |
|
|
/** |
|
|
* User override on path sep char |
|
|
* User override on path sep char |
|
|
*/ |
|
|
*/ |
|
|
private String pathSep = null; |
|
|
|
|
|
|
|
|
private String pathSep; |
|
|
/** |
|
|
/** |
|
|
* User override on directory sep char |
|
|
* User override on directory sep char |
|
|
*/ |
|
|
*/ |
|
|
private String dirSep = null; |
|
|
|
|
|
|
|
|
private String dirSep; |
|
|
|
|
|
|
|
|
/** Filename mapper */ |
|
|
/** Filename mapper */ |
|
|
private Mapper mapper = null; |
|
|
|
|
|
|
|
|
private Mapper mapper; |
|
|
|
|
|
|
|
|
private boolean preserveDuplicates; |
|
|
private boolean preserveDuplicates; |
|
|
|
|
|
|
|
|
|
|
|
/** Destination {@link Resource} */ |
|
|
|
|
|
private Resource dest; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Helper class, holds the nested <map> values. Elements will look like |
|
|
* Helper class, holds the nested <map> values. Elements will look like |
|
|
* this: <map from="d:" to="/foo"/> |
|
|
* this: <map from="d:" to="/foo"/> |
|
|
@@ -327,6 +331,19 @@ public class PathConvert extends Task { |
|
|
return refid != null; |
|
|
return refid != null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Set destination resource. |
|
|
|
|
|
* @param dest |
|
|
|
|
|
*/ |
|
|
|
|
|
public void setDest(Resource dest) { |
|
|
|
|
|
if (dest != null) { |
|
|
|
|
|
if (this.dest != null) { |
|
|
|
|
|
throw new BuildException("@dest already set"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
this.dest = dest; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Do the execution. |
|
|
* Do the execution. |
|
|
* @throws BuildException if something is invalid. |
|
|
* @throws BuildException if something is invalid. |
|
|
@@ -370,7 +387,10 @@ public class PathConvert extends Task { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private OutputStream createOutputStream() { |
|
|
|
|
|
|
|
|
private OutputStream createOutputStream() throws IOException { |
|
|
|
|
|
if (dest != null) { |
|
|
|
|
|
return dest.getOutputStream(); |
|
|
|
|
|
} |
|
|
if (property == null) { |
|
|
if (property == null) { |
|
|
return new LogOutputStream(this); |
|
|
return new LogOutputStream(this); |
|
|
} |
|
|
} |
|
|
@@ -451,10 +471,12 @@ public class PathConvert extends Task { |
|
|
* @throws BuildException if something is not set up properly. |
|
|
* @throws BuildException if something is not set up properly. |
|
|
*/ |
|
|
*/ |
|
|
private void validateSetup() throws BuildException { |
|
|
private void validateSetup() throws BuildException { |
|
|
|
|
|
|
|
|
if (path == null) { |
|
|
if (path == null) { |
|
|
throw new BuildException("You must specify a path to convert"); |
|
|
throw new BuildException("You must specify a path to convert"); |
|
|
} |
|
|
} |
|
|
|
|
|
if (property != null && dest != null) { |
|
|
|
|
|
throw new BuildException("@property and @dest are mutually exclusive"); |
|
|
|
|
|
} |
|
|
// Determine the separator strings. The dirsep and pathsep attributes |
|
|
// Determine the separator strings. The dirsep and pathsep attributes |
|
|
// override the targetOS settings. |
|
|
// override the targetOS settings. |
|
|
String dsep = File.separator; |
|
|
String dsep = File.separator; |
|
|
|