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 protectedContentTransformingResource()no arg constructorprotectedContentTransformingResource(ResourceCollection other)Constructor with another resource to wrap. -
Method Summary
Modifier and Type Method Description <T> Tas(java.lang.Class<T> clazz)Suppress FileProvider, re-implement Appendablejava.io.InputStreamgetInputStream()Get an InputStream for the Resource.java.io.OutputStreamgetOutputStream()Get an OutputStream for the Resource.longgetSize()Get the size of this Resource.protected booleanisAppendSupported()Learn whether the transformation performed allows appends.protected abstract java.io.InputStreamwrapStream(java.io.InputStream in)Get a content-filtering/transforming InputStream.protected abstract java.io.OutputStreamwrapStream(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, setSizeMethods inherited from class org.apache.tools.ant.types.Resource
asOptional, clone, equals, getMagicNumber, getRef, iterator, size, toLongString, toStringMethods 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, tooManyAttributesMethods 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:
getSizein 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:
getInputStreamin 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:
getOutputStreamin 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:
asin 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.
-