org.zkoss.web.util.resource
Class ExtendletLoader

java.lang.Object
  extended by org.zkoss.web.util.resource.ExtendletLoader
All Implemented Interfaces:
org.zkoss.util.resource.Loader

public abstract class ExtendletLoader
extends Object
implements org.zkoss.util.resource.Loader

A skeletal implementation of the loader used to implement an extendlet. All you have to do is to implement parse(java.io.InputStream, java.lang.String, java.lang.String) and getExtendletContext().

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
org.zkoss.util.resource.Loader.Resource
 
Constructor Summary
protected ExtendletLoader()
           
 
Method Summary
 int getCheckPeriod()
          Returns the check period, or -1 if the content is never changed.
protected abstract  ExtendletContext getExtendletContext()
          Returns the extendlet context.
 long getLastModified(Object src)
          Returns the last modified time.
protected  String getRealPath(String path)
          Returns the real path for the specified path.
 Object load(Object src)
           
protected abstract  Object parse(InputStream is, String path, String orgpath)
          It is called to parse the resource into an intermediate format depending on Extendlet.
 boolean shallCheck(Object src, long expiredMillis)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtendletLoader

protected ExtendletLoader()
Method Detail

getRealPath

protected String getRealPath(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(Object src,
                          long expiredMillis)
Specified by:
shallCheck in interface org.zkoss.util.resource.Loader

getLastModified

public long getLastModified(Object src)
Returns the last modified time.

Specified by:
getLastModified in interface org.zkoss.util.resource.Loader

load

public Object load(Object src)
            throws Exception
Specified by:
load in interface org.zkoss.util.resource.Loader
Throws:
Exception

parse

protected abstract Object parse(InputStream is,
                                String path,
                                String orgpath)
                         throws Exception
It is called to parse the resource into an intermediate format depending on Extendlet.

The object is returned directly by load(java.lang.Object), so you can return an instance of org.zkoss.util.resource.Loader.Resource to have more control on ResourceCache.

Parameters:
is - the content of the resource
path - the path of the resource. It is the value returned by getRealPath(java.lang.String), so called the real path
orgpath - the original path. It is the path passed to the path argument of getRealPath(java.lang.String). It is useful if you want to retrieve the additional information encoded into the URI.
Throws:
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.



Copyright © 2012. All Rights Reserved.