Class ExtendletLoader<V>
- java.lang.Object
-
- org.zkoss.web.util.resource.ExtendletLoader<V>
-
- All Implemented Interfaces:
Loader<java.lang.String,V>
public abstract class ExtendletLoader<V> extends java.lang.Object implements Loader<java.lang.String,V>
A skeletal implementation of the loader used to implement an extendlet. All you have to do is to implementparse(java.io.InputStream, java.lang.String, java.lang.String)
andgetExtendletContext()
.If the real path is not the same as the path specified in URL, you can override
getRealPath(java.lang.String)
.- Since:
- 3.0.6
- Author:
- tomyeh
- See Also:
Extendlet
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.zkoss.util.resource.Loader
Loader.Resource<V>
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ExtendletLoader()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description int
getCheckPeriod()
Returns the check period, or -1 if the content is never changed.protected abstract ExtendletContext
getExtendletContext()
Returns the extendlet context.long
getLastModified(java.lang.String src)
Returns the last modified time.protected java.lang.String
getRealPath(java.lang.String path)
Returns the real path for the specified path.V
load(java.lang.String src)
Loads the resource.protected abstract V
parse(java.io.InputStream is, java.lang.String path, java.lang.String orgpath)
It is called to parse the resource into an intermediate format depending onExtendlet
.boolean
shallCheck(java.lang.String src, long expiredMillis)
Returns whether to callLoader.getLastModified(K)
.
-
-
-
Method Detail
-
getRealPath
protected java.lang.String getRealPath(java.lang.String path)
Returns the real path for the specified path.Default: return path, i.e., the path specified in URL is the real path.
Notice that
parse(java.io.InputStream, java.lang.String, java.lang.String)
will receive the original path (rather than the returned path).- Parameters:
path
- the path specified in URL. Notice that it does NOT start with "~./". Rather it starts with "/". For example, "/zul/css/zk.wcs".- Since:
- 5.0.0
-
shallCheck
public boolean shallCheck(java.lang.String 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<java.lang.String,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(java.lang.String src)
Returns the last modified time.- Specified by:
getLastModified
in interfaceLoader<java.lang.String,V>
-
load
public V load(java.lang.String 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<java.lang.String,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)
-
parse
protected abstract V parse(java.io.InputStream is, java.lang.String path, java.lang.String orgpath) throws java.lang.Exception
It is called to parse the resource into an intermediate format depending onExtendlet
.The object is returned directly by
load(java.lang.String)
, so you can return an instance of org.zkoss.util.resource.Loader.Resource to have more control onResourceCache
.- Parameters:
is
- the content of the resourcepath
- the path of the resource. It is the value returned bygetRealPath(java.lang.String)
, so called the real pathorgpath
- the original path. It is the path passed to thepath
argument ofgetRealPath(java.lang.String)
. It is useful if you want to retrieve the additional information encoded into the URI.- Throws:
java.lang.Exception
- Since:
- 5.0.0
-
getExtendletContext
protected abstract ExtendletContext getExtendletContext()
Returns the extendlet context.
-
getCheckPeriod
public int getCheckPeriod()
Returns the check period, or -1 if the content is never changed. Unit: milliseconds.Default: It checks if an integer (unit: second) is assigned to a system property called org.zkoss.util.resource.extendlet.checkPeriod. If no such system property, -1 is assumed (never change). For the runtime environment the content is never changed, since all extendlet resources are packed in JAR files.
-
-