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
-
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
-
-
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, 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
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.tools.ant.types.ResourceCollection
isEmpty, stream
-
-
-
-
Constructor Detail
-
ContentTransformingResource
protected ContentTransformingResource()
no arg constructor
-
ContentTransformingResource
protected ContentTransformingResource(ResourceCollection other)
Constructor with another resource to wrap.- Parameters:
other- the resource to wrap.
-
-
Method Detail
-
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.
-
-