public class NaiveUserAgent extends Object implements UserAgentCallback, DocumentListener
NaiveUserAgent is a simple implementation of UserAgentCallback which places no restrictions on what
XML, CSS or images are loaded, and reports visited links without any filtering. The most straightforward process
available in the JDK is used to load the resources in question--either using java.io or java.net classes.
The NaiveUserAgent has a small cache for images,
the size of which (number of images) can be passed as a constructor argument. There is no automatic cleaning of
the cache; call shrinkImageCache() to remove the least-accessed elements--for example, you might do this
when a new document is about to be loaded. The NaiveUserAgent is also a DocumentListener; if registered with a
source of document events (like the panel hierarchy), it will respond to the
DocumentListener.documentStarted() call and attempt to shrink its cache.
This class is meant as a starting point--it will work out of the box, but you should really implement your own, tuned to your application's needs.
| 限定符和类型 | 字段和说明 |
|---|---|
protected LinkedHashMap |
_imageCache
a (simple) LRU cache
|
| 构造器和说明 |
|---|
NaiveUserAgent()
Creates a new instance of NaiveUserAgent with a max image cache of 16 images.
|
NaiveUserAgent(int imgCacheSize)
Creates a new NaiveUserAgent with a cache of a specific size.
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
clearImageCache()
Empties the image cache entirely.
|
protected ImageResource |
createImageResource(String uri,
Image img)
Factory method to generate ImageResources from a given Image.
|
void |
documentLoaded()
Indicates document layout has complete, e.g. document is fully "loaded"
for display; this is not a callback for the document source (e.g.
|
void |
documentStarted()
Indicates document has been requested (e.g. a new document is going to be
loaded).
|
String |
getBaseURL()
Returns the current baseUrl for this class.
|
byte[] |
getBinaryResource(String uri)
Retrieves a binary resource located at a given URI and returns its contents
as a byte array or
null if the resource could not be loaded. |
CSSResource |
getCSSResource(String uri)
Retrieves the CSS located at the given URI.
|
ImageResource |
getImageResource(String uri)
Retrieves the image located at the given URI.
|
XMLResource |
getXMLResource(String uri)
Retrieves the XML located at the given URI.
|
boolean |
isVisited(String uri)
Returns true if the given URI was visited, meaning it was requested at some point since initialization.
|
void |
onLayoutException(Throwable t)
Called when document layout failed with an exception.
|
void |
onRenderException(Throwable t)
Called when document render failed with an exception.
|
protected InputStream |
resolveAndOpenStream(String uri)
Gets a Reader for the resource identified
|
String |
resolveURI(String uri)
Resolves the URI; if absolute, leaves as is, if relative, returns an absolute URI based on the baseUrl for
the agent.
|
void |
setBaseURL(String url)
URL relative to which URIs are resolved.
|
void |
shrinkImageCache()
If the image cache has more items than the limit specified for this class, the least-recently used will
be dropped from cache until it reaches the desired size.
|
protected LinkedHashMap _imageCache
public NaiveUserAgent()
public NaiveUserAgent(int imgCacheSize)
imgCacheSize - Number of images to hold in cache before LRU images are released.public void shrinkImageCache()
public void clearImageCache()
protected InputStream resolveAndOpenStream(String uri)
uri - PARAMpublic CSSResource getCSSResource(String uri)
getCSSResource 在接口中 UserAgentCallbackuri - Location of the CSS source.public ImageResource getImageResource(String uri)
getImageResource 在接口中 UserAgentCallbackuri - Location of the image source.protected ImageResource createImageResource(String uri, Image img)
uri - The URI for the image, resolved to an absolute URI.img - The image to package; may be null (for example, if image could not be loaded).public XMLResource getXMLResource(String uri)
getXMLResource 在接口中 UserAgentCallbackuri - Location of the XML source.public byte[] getBinaryResource(String uri)
UserAgentCallbacknull if the resource could not be loaded.getBinaryResource 在接口中 UserAgentCallbackpublic boolean isVisited(String uri)
isVisited 在接口中 UserAgentCallbackuri - A URI which might have been visited.public void setBaseURL(String url)
setBaseURL 在接口中 UserAgentCallbackurl - A URI which anchors other, possibly relative URIs.public String resolveURI(String uri)
resolveURI 在接口中 UserAgentCallbackuri - A URI, possibly relative.public String getBaseURL()
getBaseURL 在接口中 UserAgentCallbackpublic void documentStarted()
DocumentListenerdocumentStarted 在接口中 DocumentListenerpublic void documentLoaded()
DocumentListenerdocumentLoaded 在接口中 DocumentListenerpublic void onLayoutException(Throwable t)
DocumentListenerThrowable objects thrown (except for
ThreadDeath) during layout and not otherwise handled will
be provided to this method. If a DocumentListener has been
defined an XHTML panel, the listener is entirely responsible for
handling the exception. No other action will be taken.onLayoutException 在接口中 DocumentListenerpublic void onRenderException(Throwable t)
DocumentListenerThrowable objects thrown (except for
ThreadDeath) during render and not otherwise handled will
be provided to this method. If a DocumentListener has been
defined an XHTML panel, the listener is entirely responsible for
handling the exception. No other action will be taken.onRenderException 在接口中 DocumentListenerCopyright © 2019. All Rights Reserved.