xmlgraphics-commons 1.4

org.apache.xmlgraphics.image.loader.impl
Class AbstractImageSessionContext

java.lang.Object
  extended by org.apache.xmlgraphics.image.loader.impl.AbstractImageSessionContext
All Implemented Interfaces:
ImageSessionContext
Direct Known Subclasses:
DefaultImageSessionContext

public abstract class AbstractImageSessionContext
extends java.lang.Object
implements ImageSessionContext

Abstract base class for classes implementing ImageSessionContext. This class provides all the special treatment for Source creation, i.e. it provides optimized Source objects where possible.


Constructor Summary
AbstractImageSessionContext()
           
 
Method Summary
protected  javax.imageio.stream.ImageInputStream createImageInputStream(java.io.InputStream in)
           
 javax.xml.transform.Source getSource(java.lang.String uri)
          Returns a Source object for a URI.
protected  boolean isReusable(javax.xml.transform.Source src)
          Indicates whether a Source is reusable.
 javax.xml.transform.Source needSource(java.lang.String uri)
          Returns a Source object for a URI.
 javax.xml.transform.Source newSource(java.lang.String uri)
          Attempts to create a Source object from the given URI.
protected abstract  javax.xml.transform.Source resolveURI(java.lang.String uri)
          Attempts to resolve the given URI.
 void returnSource(java.lang.String uri, javax.xml.transform.Source src)
          Returns a Source object to a pool.
static java.io.File toFile(java.net.URL url)
          Convert from a URL to a File.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.xmlgraphics.image.loader.ImageSessionContext
getParentContext, getTargetResolution
 

Constructor Detail

AbstractImageSessionContext

public AbstractImageSessionContext()
Method Detail

resolveURI

protected abstract javax.xml.transform.Source resolveURI(java.lang.String uri)
Attempts to resolve the given URI.

Parameters:
uri - URI to access
Returns:
A Source object, or null if the URI cannot be resolved.

newSource

public javax.xml.transform.Source newSource(java.lang.String uri)
Attempts to create a Source object from the given URI. If possible this method returns an ImageSource instance which provides the best possible method to access the image.

Specified by:
newSource in interface ImageSessionContext
Parameters:
uri - URI to access
Returns:
A Source object, or null if the URI cannot be resolved.

createImageInputStream

protected javax.imageio.stream.ImageInputStream createImageInputStream(java.io.InputStream in)
                                                                throws java.io.IOException
Throws:
java.io.IOException

toFile

public static java.io.File toFile(java.net.URL url)
Convert from a URL to a File.

This method will decode the URL. Syntax such as file:///my%20docs/file.txt will be correctly decoded to /my docs/file.txt.

Note: this method has been copied over from Apache Commons IO and enhanced to support UNC paths.

Parameters:
url - the file URL to convert, null returns null
Returns:
the equivalent File object, or null if the URL's protocol is not file
Throws:
java.lang.IllegalArgumentException - if the file is incorrectly encoded

getSource

public javax.xml.transform.Source getSource(java.lang.String uri)
Returns a Source object for a URI. This method is not guaranteed to return an instance. Implementations normally return already created Sources from a pool (normally populated through the ImageSessionContext.returnSource(String, Source) method).

Specified by:
getSource in interface ImageSessionContext
Parameters:
uri - the URI of the image
Returns:
the Source object to load the image from, or null

needSource

public javax.xml.transform.Source needSource(java.lang.String uri)
                                      throws java.io.FileNotFoundException
Returns a Source object for a URI. This method is guaranteed to return a Source object. If the image cannot be found, a FileNotFoundException is thrown.

Specified by:
needSource in interface ImageSessionContext
Parameters:
uri - the URI of the image
Returns:
the Source object to load the image from
Throws:
java.io.FileNotFoundException - if the image cannot be found

returnSource

public void returnSource(java.lang.String uri,
                         javax.xml.transform.Source src)
Returns a Source object to a pool. This is provided in order to reuse a Source object between the preloading and the final loading of an image. Note that not all Source objects can be reused! Non-reusable Sources are discarded.

Specified by:
returnSource in interface ImageSessionContext
Parameters:
uri - the URI of the image
src - the Source object belonging to the URI

isReusable

protected boolean isReusable(javax.xml.transform.Source src)
Indicates whether a Source is reusable. A Source object is reusable if it's an ImageSource (containing an ImageInputStream) or a DOMSource.

Parameters:
src - the Source object
Returns:
true if the Source is reusable

xmlgraphics-commons 1.4

Copyright 1999-2010 The Apache Software Foundation. All Rights Reserved.