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 protectedResourceLoader()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description longgetLastModified(org.zkoss.web.util.resource.ResourceInfo src)Returns the last modified time, or -1 if reload is required or not exists.Vload(org.zkoss.web.util.resource.ResourceInfo src)Loads the resource.protected abstract Vparse(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 Vparse(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)).booleanshallCheck(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:LoaderReturns whether to callLoader.getLastModified(K). If false, it assumes the current cached content is up-to-date.- Specified by:
shallCheckin 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:LoaderReturns the last modified time, or -1 if reload is required or not exists.- Specified by:
getLastModifiedin 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:LoaderLoads 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:
loadin 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)
-
-