## org.apache.tools.ant.types.resources
Class CompressedResource

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

All Implemented Interfaces:
  java.lang.Cloneable, java.lang.Comparable, ResourceCollection

Direct Known Subclasses:
  BZip2Resource, GZipResource

    public abstract class CompressedResource

extends Resource

A compressed resource.

Wraps around another resource, delegates all queries (except getSize) to that other resource but uncompresses/compresses streams on the fly.

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
`CompressedResource()` no arg constructor
`CompressedResource(ResourceCollection other)` Constructor with another resource to wrap.

Method Summary
`void` `addConfigured(ResourceCollection a)` Sets the resource to wrap using a single-element collection.
`int` `compareTo(java.lang.Object other)` Delegates to a comparison of names.
`protected abstract java.lang.String` `getCompressionName()`
`java.io.InputStream` `getInputStream()` Get an InputStream for the Resource.
`long` `getLastModified()` Tells the modification time in milliseconds since 01.01.1970 .
`java.lang.String` `getName()` Get the name of the resource.
`java.io.OutputStream` `getOutputStream()` Get an OutputStream for the Resource.
`long` `getSize()` Get the size of this Resource.
`int` `hashCode()` Get the hash code for this Resource.
`boolean` `isDirectory()` Tells if the resource is a directory.
`boolean` `isExists()` The exists attribute tells whether a file exists.
`boolean` `isFilesystemOnly()` Fulfill the ResourceCollection contract.
`void` `setDirectory(boolean directory)` Override setDirectory.
`void` `setExists(boolean exists)` Set the exists attribute.
`void` `setLastModified(long lastmodified)` Override setLastModified.
`void` `setName(java.lang.String name)` Overridden, not allowed to set the name of the resource.
`void` `setRefid(Reference r)` Overrides the base version.
`void` `setSize(long size)` Override setSize.
`java.lang.String` `toString()` Get the string representation of this Resource.
`protected abstract java.io.InputStream` `wrapStream(java.io.InputStream in)` Is supposed to wrap the stream to allow decompression on the fly.
`protected abstract java.io.OutputStream` `wrapStream(java.io.OutputStream out)` Is supposed to wrap the stream to allow compression on the fly.

Methods inherited from class org.apache.tools.ant.types.Resource
`clone, equals, getMagicNumber, iterator, 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, 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

### CompressedResource

    public CompressedResource()

  no arg constructor

### CompressedResource

    public CompressedResource(ResourceCollection other)

  Constructor with another resource to wrap.

  Parameters:
    `other` - the resource to wrap.

Method Detail

### addConfigured

    public void addConfigured(ResourceCollection a)

  Sets the resource to wrap using a single-element collection.

  Parameters:
    `a` - the resource to wrap as a single element Resource collection.

### getName

    public java.lang.String getName()

  Get the name of the resource.

  Overrides:
    `getName` in class `Resource`
  Returns:
    the name of the wrapped resource.

### setName

    public void setName(java.lang.String name)
                 throws BuildException

  Overridden, not allowed to set the name of the resource.

  Overrides:
    `setName` in class `Resource`
  Parameters:
    `name` - not used.
  Throws:
    `BuildException` - always.

### isExists

    public boolean isExists()

  The exists attribute tells whether a file exists.

  Overrides:
    `isExists` in class `Resource`
  Returns:
    true if this resource exists.

### setExists

    public void setExists(boolean exists)

  Set the exists attribute.

  Overrides:
    `setExists` in class `Resource`
  Parameters:
    `exists` - if true, this resource exists.

### getLastModified

    public long getLastModified()

  Tells the modification time in milliseconds since 01.01.1970 .

  Overrides:
    `getLastModified` in class `Resource`
  Returns:
    0 if the resource does not exist to mirror the behavior of `File`.

### setLastModified

    public void setLastModified(long lastmodified)
                         throws BuildException

  Override setLastModified.

  Overrides:
    `setLastModified` in class `Resource`
  Parameters:
    `lastmodified` - not used.
  Throws:
    `BuildException` - always.

### isDirectory

    public boolean isDirectory()

  Tells if the resource is a directory.

  Overrides:
    `isDirectory` in class `Resource`
  Returns:
    boolean flag indicating if the resource is a directory.

### setDirectory

    public void setDirectory(boolean directory)
                      throws BuildException

  Override setDirectory.

  Overrides:
    `setDirectory` in class `Resource`
  Parameters:
    `directory` - not used.
  Throws:
    `BuildException` - always.

### 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 (for compatibility with java.io.File), or UNKNOWN_SIZE if not known.

### setSize

    public void setSize(long size)
                 throws BuildException

  Override setSize.

  Overrides:
    `setSize` in class `Resource`
  Parameters:
    `size` - not used.
  Throws:
    `BuildException` - always.

### compareTo

    public int compareTo(java.lang.Object other)

  Delegates to a comparison of names.

  Specified by:
    `compareTo` in interface `java.lang.Comparable`
  Overrides:
    `compareTo` in class `Resource`
  Parameters:
    `other` - the object to compare to.
  Returns:
    a negative integer, zero, or a positive integer as this Resource is less than, equal to, or greater than the specified Resource.

### hashCode

    public int hashCode()

  Get the hash code for this Resource.

  Overrides:
    `hashCode` in class `Resource`
  Returns:
    hash code as int.

### getInputStream

    public java.io.InputStream getInputStream()
                                       throws java.io.IOException

  Get an InputStream for the Resource.

  Overrides:
    `getInputStream` in class `Resource`
  Returns:
    an InputStream containing this Resource's content.
  Throws:
    `java.io.IOException` - if unable to provide the content of this Resource as a stream.
    `java.lang.UnsupportedOperationException` - if InputStreams are not supported for this Resource type.

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

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

### toString

    public java.lang.String toString()

  Get the string representation of this Resource.

  Overrides:
    `toString` in class `Resource`
  Returns:
    this Resource formatted as a String.
  Since:
    Ant 1.7

### setRefid

    public void setRefid(Reference r)

  Overrides the base version.

  Overrides:
    `setRefid` in class `Resource`
  Parameters:
    `r` - the Reference to set.

### wrapStream

    protected abstract java.io.InputStream wrapStream(java.io.InputStream in)
                                               throws java.io.IOException

  Is supposed to wrap the stream to allow decompression on the fly.

  Parameters:
    `in` - InputStream to wrap, will never be null.
  Returns:
    a compressed inputstream.
  Throws:
    `java.io.IOException` - if there is a problem.

### wrapStream

    protected abstract java.io.OutputStream wrapStream(java.io.OutputStream out)
                                                throws java.io.IOException

  Is supposed to wrap the stream to allow compression on the fly.

  Parameters:
    `out` - OutputStream to wrap, will never be null.
  Returns:
    a compressed outputstream.
  Throws:
    `java.io.IOException` - if there is a problem.

### getCompressionName

    protected abstract java.lang.String getCompressionName()

  Returns:
    the name of the compression method.