org.apache.tools.ant.types.resources

## Class FileResource

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.Resource
      - - 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

Constructors
Constructor and Description
`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

Methods
`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