Browse Source

BugID 44239: Add ability of resource classes to act as factories for relative resources

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@612467 13f79535-47bb-0310-9956-ffa450edef68
master
Steve Loughran 17 years ago
parent
commit
1e8f7ef1f9
1 changed files with 17 additions and 1 deletions
  1. +17
    -1
      src/main/org/apache/tools/ant/types/resources/FileResource.java

+ 17
- 1
src/main/org/apache/tools/ant/types/resources/FileResource.java View File

@@ -29,12 +29,14 @@ import org.apache.tools.ant.BuildException;
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 @@ public class FileResource extends Resource implements Touchable, FileProvider {
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;
}
}

Loading…
Cancel
Save