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:
  `Cloneable`, `Comparable<Resource>`, `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(File f)`
  Construct a new FileResource from a File.
  `FileResource(File b, String name)`
  Construct a new FileResource using the specified basedir and relative name.
  `FileResource(Project p, File f)`
  Create a new FileResource.
  `FileResource(Project p, 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(Object another)`
  Compare another Object to this FileResource for equality.
  `OutputStream`
  `getAppendOutputStream()`
  Get an appending OutputStream.
  `File`
  `getBaseDir()`
  Return the basedir to which the name is relative.
  `File`
  `getFile()`
  Get the file represented by this FileResource.
  `InputStream`
  `getInputStream()`
  Return an InputStream for reading the contents of this Resource.
  `long`
  `getLastModified()`
  Get the modification time in milliseconds since 01.01.1970 .
  `String`
  `getName()`
  Get the name of this FileResource.
  `protected File`
  `getNotNullFile()`
  Get the file represented by this FileResource, ensuring it is not null.
  `OutputStream`
  `getOutputStream()`
  Get an OutputStream for the Resource.
  `protected FileResource`
  `getRef()`
  Perform the check for circular references and return the referenced Resource.
  `Resource`
  `getResource(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(File b)`
  Set the basedir for this FileResource.
  `void`
  `setFile(File f)`
  Set the File for this FileResource.
  `void`
  `setRefid(Reference r)`
  Overrides the super version.
  `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(File b, 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(File f)
    Construct a new FileResource from a File.
    Parameters:
      `f` - the File represented.

  - ### FileResource

    public FileResource(Project p, File f)
    Create a new FileResource.
    Parameters:
      `p` - Project
      `f` - File represented
    Since:
      Ant 1.8

  - ### FileResource

    public FileResource(Project p, 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(File f)
    Set the File for this FileResource.
    Parameters:
      `f` - the File to be represented.

  - ### getFile

    public File getFile()
    Get the file represented by this FileResource.
    Specified by:
      `getFile` in interface `FileProvider`
    Returns:
      the File.

  - ### setBaseDir

    public void setBaseDir(File b)
    Set the basedir for this FileResource.
    Parameters:
      `b` - the basedir as File.

  - ### getBaseDir

    public 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 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 InputStream getInputStream() throws IOException
    Return an InputStream for reading the contents of this Resource.
    Overrides:
      `getInputStream` in class `Resource`
    Returns:
      an InputStream object.
    Throws:
      `IOException` - if an error occurs.

  - ### getOutputStream

    public OutputStream getOutputStream() throws IOException
    Get an OutputStream for the Resource.
    Overrides:
      `getOutputStream` in class `Resource`
    Returns:
      an OutputStream to which content can be written.
    Throws:
      `IOException` - if unable to provide the content of this Resource as a stream.
      `UnsupportedOperationException` - if OutputStreams are not supported for this Resource type.

  - ### getAppendOutputStream

    public OutputStream getAppendOutputStream() throws IOException
    Get an appending OutputStream.
    Specified by:
      `getAppendOutputStream` in interface `Appendable`
    Returns:
      OutputStream
    Throws:
      `IOException` - if anything goes wrong

  - ### compareTo

    public int compareTo(Resource another)
    Compare this FileResource to another Resource.
    Specified by:
      `compareTo` in interface `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(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 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 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(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`.