You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by st...@apache.org on 2008/01/16 15:15:01 UTC

svn commit: r612467 - /ant/core/trunk/src/main/org/apache/tools/ant/types/resources/FileResource.java

Author: stevel
Date: Wed Jan 16 06:14:59 2008
New Revision: 612467

URL: http://svn.apache.org/viewvc?rev=612467&view=rev
Log:
BugID 44239: Add ability of resource classes to act as factories for relative resources

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/FileResource.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/resources/FileResource.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/FileResource.java?rev=612467&r1=612466&r2=612467&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/resources/FileResource.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/resources/FileResource.java Wed Jan 16 06:14:59 2008
@@ -29,12 +29,14 @@
 import org.apache.tools.ant.util.FileUtils;
 import org.apache.tools.ant.types.Resource;
 import org.apache.tools.ant.types.Reference;
+import org.apache.tools.ant.types.ResourceFactory;
 
 /**
  * A Resource representation of a File.
  * @since Ant 1.7
  */
-public class FileResource extends Resource implements Touchable, FileProvider {
+public class FileResource extends Resource implements Touchable, FileProvider,
+        ResourceFactory {
 
     private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();
     private static final int NULL_FILE
@@ -321,4 +323,18 @@
         return getFile();
     }
 
+    /**
+     * Create a new resource that matches a relative or absolute path.
+     * If the current instance has a baseDir attribute, it is copied.
+     * @param path relative/absolute path to a resource
+     * @return a new resource of type FileResource
+     * @throws BuildException if desired
+     * @since Ant1.8
+     */
+    public Resource getResource(String path) {
+        File newfile = FILE_UTILS.resolveFile(getFile(), path);
+        FileResource fileResource = new FileResource(newfile);
+        fileResource.setBaseDir(getBaseDir());
+        return fileResource;
+    }
 }