Class ContentTransformingResource
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.ResourceDecorator
org.apache.tools.ant.types.resources.ContentTransformingResource
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Comparable<Resource>
,java.lang.Iterable<Resource>
,ResourceCollection
- Direct Known Subclasses:
CompressedResource
public abstract class ContentTransformingResource extends ResourceDecorator
A resource that transforms the content of another resource.
Wraps around another resource, delegates all queries (except getSize) to that other resource but transforms stream content on the fly.
- Since:
- Ant 1.8
-
Field Summary
Fields inherited from class org.apache.tools.ant.types.Resource
MAGIC, UNKNOWN_DATETIME, UNKNOWN_SIZE
-
Constructor Summary
Constructors Modifier Constructor Description protected
ContentTransformingResource()
no arg constructorprotected
ContentTransformingResource(ResourceCollection other)
Constructor with another resource to wrap. -
Method Summary
Modifier and Type Method Description <T> T
as(java.lang.Class<T> clazz)
Suppress FileProvider, re-implement Appendablejava.io.InputStream
getInputStream()
Get an InputStream for the Resource.java.io.OutputStream
getOutputStream()
Get an OutputStream for the Resource.long
getSize()
Get the size of this Resource.protected boolean
isAppendSupported()
Learn whether the transformation performed allows appends.protected abstract java.io.InputStream
wrapStream(java.io.InputStream in)
Get a content-filtering/transforming InputStream.protected abstract java.io.OutputStream
wrapStream(java.io.OutputStream out)
Get a content-filtering/transforming OutputStream.Methods inherited from class org.apache.tools.ant.types.resources.ResourceDecorator
addConfigured, compareTo, dieOnCircularReference, getLastModified, getName, getResource, hashCode, isDirectory, isExists, isFilesystemOnly, setDirectory, setExists, setLastModified, setName, setRefid, setSize
Methods inherited from class org.apache.tools.ant.types.Resource
asOptional, clone, equals, getMagicNumber, getRef, iterator, size, toLongString, toString
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, 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
-
Constructor Details
-
ContentTransformingResource
protected ContentTransformingResource()no arg constructor -
ContentTransformingResource
Constructor with another resource to wrap.- Parameters:
other
- the resource to wrap.
-
-
Method Details
-
getSize
public long getSize()Get the size of this Resource.- Overrides:
getSize
in classResourceDecorator
- 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.
-
getInputStream
public java.io.InputStream getInputStream() throws java.io.IOExceptionGet an InputStream for the Resource.- Overrides:
getInputStream
in classResourceDecorator
- 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.IOExceptionGet an OutputStream for the Resource.- Overrides:
getOutputStream
in classResourceDecorator
- 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.
-
as
public <T> T as(java.lang.Class<T> clazz)Suppress FileProvider, re-implement Appendable- Overrides:
as
in classResourceDecorator
- Type Parameters:
T
- desired type- Parameters:
clazz
- a class- Returns:
- resource of a desired type
-
isAppendSupported
protected boolean isAppendSupported()Learn whether the transformation performed allows appends.In general compressed outputs will become invalid if they are appended to, for example.
This implementations returns false.
- Returns:
- boolean false
-
wrapStream
protected abstract java.io.InputStream wrapStream(java.io.InputStream in) throws java.io.IOExceptionGet a content-filtering/transforming InputStream.- 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.IOExceptionGet a content-filtering/transforming OutputStream.- Parameters:
out
- OutputStream to wrap, will never be null.- Returns:
- a compressed OutputStream.
- Throws:
java.io.IOException
- if there is a problem.
-