Package org.zkoss.web.util.resource
Class ResourceLoader<V>
- java.lang.Object
-
- org.zkoss.web.util.resource.ResourceLoader<V>
-
- All Implemented Interfaces:
Loader<org.zkoss.web.util.resource.ResourceInfo,V>
public abstract class ResourceLoader<V> extends java.lang.Object implements Loader<org.zkoss.web.util.resource.ResourceInfo,V>
A semi-implemented loader to used withResourceCaches.get(org.zkoss.web.util.resource.ResourceCache<V>, javax.servlet.ServletContext, java.lang.String, java.lang.Object)
to retrieve servlet resources.- Author:
- tomyeh
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.zkoss.util.resource.Loader
Loader.Resource<V>
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ResourceLoader()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description long
getLastModified(org.zkoss.web.util.resource.ResourceInfo src)
Returns the last modified time, or -1 if reload is required or not exists.V
load(org.zkoss.web.util.resource.ResourceInfo src)
Loads the resource.protected abstract V
parse(java.lang.String path, java.io.File file, java.lang.Object extra)
Parses the specified file and returns the result which will be stored into the cache (ResourceCaches.get(org.zkoss.web.util.resource.ResourceCache<V>, javax.servlet.ServletContext, java.lang.String, java.lang.Object)
).protected abstract V
parse(java.lang.String path, java.net.URL url, java.lang.Object extra)
Parses the specified URL and returns the result which will be stored into the cache (ResourceCaches.get(org.zkoss.web.util.resource.ResourceCache<V>, javax.servlet.ServletContext, java.lang.String, java.lang.Object)
).boolean
shallCheck(org.zkoss.web.util.resource.ResourceInfo src, long expiredMillis)
Returns whether to callLoader.getLastModified(K)
.
-
-
-
Method Detail
-
parse
protected abstract V parse(java.lang.String path, java.io.File file, java.lang.Object extra) throws java.lang.Exception
Parses the specified file and returns the result which will be stored into the cache (ResourceCaches.get(org.zkoss.web.util.resource.ResourceCache<V>, javax.servlet.ServletContext, java.lang.String, java.lang.Object)
).Deriving must override this method.
- Parameters:
extra
- the extra parameter passed fromResourceCaches.get(org.zkoss.web.util.resource.ResourceCache<V>, javax.servlet.ServletContext, java.lang.String, java.lang.Object)
.- Throws:
java.lang.Exception
-
parse
protected abstract V parse(java.lang.String path, java.net.URL url, java.lang.Object extra) throws java.lang.Exception
Parses the specified URL and returns the result which will be stored into the cache (ResourceCaches.get(org.zkoss.web.util.resource.ResourceCache<V>, javax.servlet.ServletContext, java.lang.String, java.lang.Object)
).Deriving must override this method.
- Parameters:
extra
- the extra parameter passed fromResourceCaches.get(org.zkoss.web.util.resource.ResourceCache<V>, javax.servlet.ServletContext, java.lang.String, java.lang.Object)
.- Throws:
java.lang.Exception
-
shallCheck
public boolean shallCheck(org.zkoss.web.util.resource.ResourceInfo src, long expiredMillis)
Description copied from interface:Loader
Returns whether to callLoader.getLastModified(K)
. If false, it assumes the current cached content is up-to-date.- Specified by:
shallCheck
in interfaceLoader<org.zkoss.web.util.resource.ResourceInfo,V>
expiredMillis
- how many milli-seconds are expired after the last check. In most cases, just return true if expiredMillis > 0
-
getLastModified
public long getLastModified(org.zkoss.web.util.resource.ResourceInfo src)
Description copied from interface:Loader
Returns the last modified time, or -1 if reload is required or not exists.- Specified by:
getLastModified
in interfaceLoader<org.zkoss.web.util.resource.ResourceInfo,V>
-
load
public V load(org.zkoss.web.util.resource.ResourceInfo src) throws java.lang.Exception
Description copied from interface:Loader
Loads the resource.The returned resource could be anything. It will be returned by
ResourceCache.get(java.lang.Object)
. However, if you want to have more control (e.g., whether to cache), you can return an instance ofLoader.Resource
. Then, the return value ofResourceCache.get(java.lang.Object)
will beLoader.Resource.resource
.- Specified by:
load
in interfaceLoader<org.zkoss.web.util.resource.ResourceInfo,V>
- Returns:
- null if not found
- Throws:
java.lang.Exception
- you might throw any exception which will be passed back to the caller ofResourceCache.get(java.lang.Object)
-
-