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