org.apache.batik.refimpl.gvt.filter
Class URLImageCache

java.lang.Object
  |
  +--org.apache.batik.refimpl.gvt.filter.URLImageCache

public class URLImageCache
extends java.lang.Object

This class manages a cache of soft references to Images that we have already loaded. Adding an image is two fold. First you add the URL, this lets the cache know that someone is working on this URL. Then when the completed BufferedImage is ready you put it into the cache.

If someone requests a URL after it has been added but before it has been put they will be blocked until the put.


Constructor Summary
URLImageCache()
          Let people create there own caches.
 
Method Summary
 void clear(java.net.URL url)
          Clear the entry for URL.
static URLImageCache getDefaultCache()
           
 boolean isDone(java.net.URL url)
          Check if request(url) will return immediately with the BufferedImage.
 boolean isPresent(java.net.URL url)
          Check if request(url) will return with a BufferedImage (not putting you on the hook for it).
 void put(java.net.URL url, java.awt.image.BufferedImage bi)
          Associate bi with url.
 java.awt.image.BufferedImage request(java.net.URL url)
          If this returns null then you are now 'on the hook'.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

URLImageCache

public URLImageCache()
Let people create there own caches.
Method Detail

getDefaultCache

public static URLImageCache getDefaultCache()

isPresent

public boolean isPresent(java.net.URL url)
Check if request(url) will return with a BufferedImage (not putting you on the hook for it). Note that it is possible that this will return true but between this call and the call to request the soft-reference will be cleared. So it is still possible for request to return NULL, just much less likely (you can always call 'clear' in that case).

isDone

public boolean isDone(java.net.URL url)
Check if request(url) will return immediately with the BufferedImage. Note that it is possible that this will return true but between this call and the call to request the soft-reference will be cleared.

request

public java.awt.image.BufferedImage request(java.net.URL url)
If this returns null then you are now 'on the hook'. to put the BufferedImage associated with URL into the cache.

clear

public void clear(java.net.URL url)
Clear the entry for URL. This is the easiest way to 'get off the hook'. if you didn't indend to get on it.

put

public void put(java.net.URL url,
                java.awt.image.BufferedImage bi)
Associate bi with url. bi is only referenced through a soft reference so don't rely on the cache to keep it around.


Copyright © 2000 Apache Software Foundation. All Rights Reserved.