org.apache.tools.ant.types.resources
Class FileResource

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.types.DataType
          extended by org.apache.tools.ant.types.Resource
              extended by org.apache.tools.ant.types.resources.FileResource
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable<Resource>, java.lang.Iterable<Resource>, ResourceCollection, ResourceFactory, Appendable, FileProvider, Touchable

public class FileResource
extends Resource
implements Touchable, FileProvider, ResourceFactory, Appendable

A Resource representation of a File.

Since:
Ant 1.7

Field Summary
 
Fields inherited from class org.apache.tools.ant.types.Resource
MAGIC, UNKNOWN_DATETIME, UNKNOWN_SIZE
 
Fields inherited from class org.apache.tools.ant.types.DataType
checked, ref
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
FileResource()
          Default constructor.
FileResource(java.io.File f)
          Construct a new FileResource from a File.
FileResource(java.io.File b, java.lang.String name)
          Construct a new FileResource using the specified basedir and relative name.
FileResource(Project p, java.io.File f)
          Create a new FileResource.
FileResource(Project p, java.lang.String s)
          Constructor for Ant attribute introspection.
 
Method Summary
 int compareTo(Resource another)
          Compare this FileResource to another Resource.
 boolean equals(java.lang.Object another)
          Compare another Object to this FileResource for equality.
 java.io.OutputStream getAppendOutputStream()
          Get an appending OutputStream.
 java.io.File getBaseDir()
          Return the basedir to which the name is relative.
 java.io.File getFile()
          Get the file represented by this FileResource.
 java.io.InputStream getInputStream()
          Return an InputStream for reading the contents of this Resource.
 long getLastModified()
          Get the modification time in milliseconds since 01.01.1970 .
 java.lang.String getName()
          Get the name of this FileResource.
protected  java.io.File getNotNullFile()
          Get the file represented by this FileResource, ensuring it is not null.
 java.io.OutputStream getOutputStream()
          Get an OutputStream for the Resource.
 Resource getResource(java.lang.String path)
          Create a new resource that matches a relative or absolute path.
 long getSize()
          Get the size of this Resource.
 int hashCode()
          Get the hash code for this Resource.
 boolean isDirectory()
          Learn whether the resource is a directory.
 boolean isExists()
          Learn whether this file exists.
 boolean isFilesystemOnly()
          Fulfill the ResourceCollection contract.
 void setBaseDir(java.io.File b)
          Set the basedir for this FileResource.
 void setFile(java.io.File f)
          Set the File for this FileResource.
 void setRefid(Reference r)
          Overrides the super version.
 java.lang.String toString()
          Get the string representation of this Resource.
 void touch(long modTime)
          Implement the Touchable interface.
 
Methods inherited from class org.apache.tools.ant.types.Resource
as, clone, getMagicNumber, iterator, setDirectory, setExists, setLastModified, setName, setSize, size, toLongString
 
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FileResource

public FileResource()
Default constructor.


FileResource

public FileResource(java.io.File b,
                    java.lang.String name)
Construct a new FileResource using the specified basedir and relative name.

Parameters:
b - the basedir as File.
name - the relative filename.

FileResource

public FileResource(java.io.File f)
Construct a new FileResource from a File.

Parameters:
f - the File represented.

FileResource

public FileResource(Project p,
                    java.io.File f)
Create a new FileResource.

Parameters:
p - Project
f - File represented
Since:
Ant 1.8

FileResource

public FileResource(Project p,
                    java.lang.String s)
Constructor for Ant attribute introspection.

Parameters:
p - the Project against which to resolve s.
s - the absolute or Project-relative filename as a String.
See Also:
IntrospectionHelper
Method Detail

setFile

public void setFile(java.io.File f)
Set the File for this FileResource.

Parameters:
f - the File to be represented.

getFile

public java.io.File getFile()
Get the file represented by this FileResource.

Specified by:
getFile in interface FileProvider
Returns:
the File.

setBaseDir

public void setBaseDir(java.io.File b)
Set the basedir for this FileResource.

Parameters:
b - the basedir as File.

getBaseDir

public java.io.File getBaseDir()
Return the basedir to which the name is relative.

Returns:
the basedir as File.

setRefid

public void setRefid(Reference r)
Overrides the super version.

Overrides:
setRefid in class Resource
Parameters:
r - the Reference to set.

getName

public java.lang.String getName()
Get the name of this FileResource. If the basedir is set, the name will be relative to that. Otherwise the basename only will be returned.

Overrides:
getName in class Resource
Returns:
the name of this resource.

isExists

public boolean isExists()
Learn whether this file exists.

Overrides:
isExists in class Resource
Returns:
true if this resource exists.

getLastModified

public long getLastModified()
Get the modification time in milliseconds since 01.01.1970 .

Overrides:
getLastModified in class Resource
Returns:
0 if the resource does not exist.

isDirectory

public boolean isDirectory()
Learn whether the resource is a directory.

Overrides:
isDirectory in class Resource
Returns:
boolean flag indicating if the resource is a directory.

getSize

public long getSize()
Get the size of this Resource.

Overrides:
getSize in class Resource
Returns:
the size, as a long, 0 if the Resource does not exist.

getInputStream

public java.io.InputStream getInputStream()
                                   throws java.io.IOException
Return an InputStream for reading the contents of this Resource.

Overrides:
getInputStream in class Resource
Returns:
an InputStream object.
Throws:
java.io.IOException - if an error occurs.

getOutputStream

public java.io.OutputStream getOutputStream()
                                     throws java.io.IOException
Get an OutputStream for the Resource.

Overrides:
getOutputStream in class Resource
Returns:
an OutputStream to which content can be written.
Throws:
java.io.IOException - if unable to provide the content of this Resource as a stream.
java.lang.UnsupportedOperationException - if OutputStreams are not supported for this Resource type.

getAppendOutputStream

public java.io.OutputStream getAppendOutputStream()
                                           throws java.io.IOException
Get an appending OutputStream.

Specified by:
getAppendOutputStream in interface Appendable
Returns:
OutputStream
Throws:
java.io.IOException - if anything goes wrong

compareTo

public int compareTo(Resource another)
Compare this FileResource to another Resource.

Specified by:
compareTo in interface java.lang.Comparable<Resource>
Overrides:
compareTo in class Resource
Parameters:
another - the other Resource against which to compare.
Returns:
a negative integer, zero, or a positive integer as this FileResource is less than, equal to, or greater than the specified Resource.

equals

public boolean equals(java.lang.Object another)
Compare another Object to this FileResource for equality.

Overrides:
equals in class Resource
Parameters:
another - the other Object to compare.
Returns:
true if another is a FileResource representing the same file.

hashCode

public int hashCode()
Get the hash code for this Resource.

Overrides:
hashCode in class Resource
Returns:
hash code as int.

toString

public java.lang.String toString()
Get the string representation of this Resource.

Overrides:
toString in class Resource
Returns:
this FileResource formatted as a String.

isFilesystemOnly

public boolean isFilesystemOnly()
Fulfill the ResourceCollection contract.

Specified by:
isFilesystemOnly in interface ResourceCollection
Overrides:
isFilesystemOnly in class Resource
Returns:
whether this Resource is a FileResource.

touch

public void touch(long modTime)
Implement the Touchable interface.

Specified by:
touch in interface Touchable
Parameters:
modTime - new last modification time.

getNotNullFile

protected java.io.File getNotNullFile()
Get the file represented by this FileResource, ensuring it is not null.

Returns:
the not-null File.
Throws:
BuildException - if file is null.

getResource

public Resource getResource(java.lang.String path)
Create a new resource that matches a relative or absolute path. If the current instance has a compatible baseDir attribute, it is copied.

Specified by:
getResource in interface ResourceFactory
Parameters:
path - relative/absolute path to a resource
Returns:
a new resource of type FileResource
Throws:
BuildException - if desired
Since:
Ant1.8