Package 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 | 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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.
    `protected FileResource` | `getRef()` | Perform the check for circular references and return the referenced 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, asOptional, 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, 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`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

    - ### Methods inherited from interface org.apache.tools.ant.types.ResourceCollection

      `isEmpty, stream`

- - ### 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

    - #### getRef

          protected FileResource getRef()

      Description copied from class: `Resource`
      Perform the check for circular references and return the referenced Resource.
      Overrides:
        `getRef` in class `Resource`
      Returns:
        `Resource`.