org.zkoss.web.util.resource
Class ExtendletLoader<V>

java.lang.Object
  extended by org.zkoss.web.util.resource.ExtendletLoader<V>
All Implemented Interfaces:
org.zkoss.util.resource.Loader<String,V>

public abstract class ExtendletLoader<V>
extends Object
implements org.zkoss.util.resource.Loader<String,V>

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<V>
 
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(String src)
          Returns the last modified time.
protected  String getRealPath(String path)
          Returns the real path for the specified path.
 V load(String src)
           
protected abstract  V parse(InputStream is, String path, String orgpath)
          It is called to parse the resource into an intermediate format depending on Extendlet.
 boolean shallCheck(String 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(String src,
                          long expiredMillis)
Specified by:
shallCheck in interface org.zkoss.util.resource.Loader<String,V>

getLastModified

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

Specified by:
getLastModified in interface org.zkoss.util.resource.Loader<String,V>

load

public V load(String src)
       throws Exception
Specified by:
load in interface org.zkoss.util.resource.Loader<String,V>
Throws:
Exception

parse

protected abstract V 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.String), 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 © 2015. All rights reserved.