javax.faces.view.facelets
Class FaceletCache<V>

java.lang.Object
  extended by javax.faces.view.facelets.FaceletCache<V>

public abstract class FaceletCache<V>
extends java.lang.Object

This API defines the facility by which the Facelets ViewDeclarationLanguage creates and caches instances of Facelets.

The cache handles two different kinds of Facelets: View Facelets and View Metadata Facelets. The former is the usual Facelet that provides for the construction of a UIComponent tree. This kind of Facelet is accessed via the getFacelet(java.net.URL) and isFaceletCached(java.net.URL) methods. The latter is a special kind of Facelet that corresponds to ViewDeclarationLanguage.getViewMetadata(javax.faces.context.FacesContext, java.lang.String). This kind of Facelet is accessed via the getViewMetadataFacelet(java.net.URL) and isViewMetadataFaceletCached(java.net.URL) methods.

Since:
2.1

Nested Class Summary
static interface FaceletCache.MemberFactory<V>
          

Factory interface for creating Facelet or View Metadata Facelet instances.

 
Constructor Summary
FaceletCache()
           
 
Method Summary
abstract  V getFacelet(java.net.URL url)
          

Returns a cached Facelet instance.

protected  FaceletCache.MemberFactory<V> getMemberFactory()
          

Returns the FaceletCache.MemberFactory passed to setMemberFactories(javax.faces.view.facelets.FaceletCache.MemberFactory, javax.faces.view.facelets.FaceletCache.MemberFactory) for the purpose of creating Facelet instance.

protected  FaceletCache.MemberFactory<V> getMetadataMemberFactory()
          

Returns the FaceletCache.MemberFactory passed to setMemberFactories(javax.faces.view.facelets.FaceletCache.MemberFactory, javax.faces.view.facelets.FaceletCache.MemberFactory) for the purpose of creating View Metadata Facelet instance.

abstract  V getViewMetadataFacelet(java.net.URL url)
          

Returns a cached View Metadata Facelet instance.

abstract  boolean isFaceletCached(java.net.URL url)
          

Determines whether a cached Facelet instance exists for this URL.

abstract  boolean isViewMetadataFaceletCached(java.net.URL url)
          

Determines whether a cached View Metadata Facelet instance exists for this URL.

protected  void setMemberFactories(FaceletCache.MemberFactory<V> faceletFactory, FaceletCache.MemberFactory<V> viewMetadataFaceletFactory)
          

This must be called by the runtime at startup time, before any requests are serviced, and allows for the FaceletCache implementation to provide the FaceletCache.MemberFactory instances that will be used to create instances of Facelets and View Metadata Facelets.

 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FaceletCache

public FaceletCache()
Method Detail

getFacelet

public abstract V getFacelet(java.net.URL url)
                      throws java.io.IOException

Returns a cached Facelet instance. If no instance is available, it will be created using the Facelet FaceletCache.MemberFactory and stored in the cache.

Parameters:
url - URL for the Facelet being retrieved
Throws:
java.lang.NullPointerException - if argument url is null.
java.io.IOException

isFaceletCached

public abstract boolean isFaceletCached(java.net.URL url)

Determines whether a cached Facelet instance exists for this URL. Returns true if a cached instance exists, false otherwise

Parameters:
url - URL for the Facelet
Throws:
java.lang.NullPointerException - if argument url is null.

getViewMetadataFacelet

public abstract V getViewMetadataFacelet(java.net.URL url)
                                  throws java.io.IOException

Returns a cached View Metadata Facelet instance. If no instance is available, it will be created using the View Metadata Facelet FaceletCache.MemberFactory and stored in the cache.

Parameters:
url - URL for the View Metadata Facelet being retrieved
Throws:
java.lang.NullPointerException - if argument url is null.
java.io.IOException

isViewMetadataFaceletCached

public abstract boolean isViewMetadataFaceletCached(java.net.URL url)

Determines whether a cached View Metadata Facelet instance exists for this URL. Returns true if a cached instance exists, false otherwise

Parameters:
url - URL for the View Metadata Facelet
Throws:
java.lang.NullPointerException - if argument url is null.

setMemberFactories

protected void setMemberFactories(FaceletCache.MemberFactory<V> faceletFactory,
                                  FaceletCache.MemberFactory<V> viewMetadataFaceletFactory)

This must be called by the runtime at startup time, before any requests are serviced, and allows for the FaceletCache implementation to provide the FaceletCache.MemberFactory instances that will be used to create instances of Facelets and View Metadata Facelets.

Parameters:
faceletFactory - the FaceletCache.MemberFactory instance that will be used to create instances of Facelets.
viewMetadataFaceletFactory - the FaceletCache.MemberFactory instance that will be used to create instances of metadata Facelets.
Throws:
java.lang.NullPointerException - if either argument is null

getMemberFactory

protected FaceletCache.MemberFactory<V> getMemberFactory()

Returns the FaceletCache.MemberFactory passed to setMemberFactories(javax.faces.view.facelets.FaceletCache.MemberFactory, javax.faces.view.facelets.FaceletCache.MemberFactory) for the purpose of creating Facelet instance.


getMetadataMemberFactory

protected FaceletCache.MemberFactory<V> getMetadataMemberFactory()

Returns the FaceletCache.MemberFactory passed to setMemberFactories(javax.faces.view.facelets.FaceletCache.MemberFactory, javax.faces.view.facelets.FaceletCache.MemberFactory) for the purpose of creating View Metadata Facelet instance.



Copyright 2002-2010 Oracle America Inc, Inc. All Rights Reserved.