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

  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 Details

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

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