org.apache.wicket.request.resource
Class ResourceReferenceRegistry

java.lang.Object
  extended by org.apache.wicket.request.resource.ResourceReferenceRegistry

public class ResourceReferenceRegistry
extends Object

Allows to register and lookup ResourceReferences per Application.

Author:
Matej Knopp, Juergen Donnerstag
See Also:
Application.getResourceReferenceRegistry(), Application.newResourceReferenceRegistry()

Nested Class Summary
static class ResourceReferenceRegistry.DefaultResourceReferenceFactory
          A simple implementation of IResourceReferenceFactory that creates PackageResourceReference
 
Constructor Summary
ResourceReferenceRegistry()
          Constructor.
ResourceReferenceRegistry(IResourceReferenceFactory resourceReferenceFactory)
          Constructor
 
Method Summary
 void clearAutoAddedEntries()
          Unregisters all auto-added Resource References
protected  ResourceReference createDefaultResourceReference(ResourceReference.Key key)
          Creates a default resource reference in case no registry entry and it was requested to create one.
 int getAutoAddedCacheSize()
           
 int getAutoAddedCapacity()
          Gets cache size in number of entries
 ResourceReference getResourceReference(Class<?> scope, String name, Locale locale, String style, String variation, boolean strict, boolean createIfNotFound)
          Get a resource reference matching the parameters from the registry or if not found and requested, create an default resource reference and add it to the registry.
 ResourceReference getResourceReference(ResourceReference.Key key, boolean strict, boolean createIfNotFound)
          Get a resource reference matching the parameters from the registry or if not found and requested, create an default resource reference and add it to the registry.
 int getSize()
           
 boolean registerResourceReference(ResourceReference reference)
          Registers the given ResourceReference.
 void setAutoAddedCapacity(int autoAddedCapacity)
          Set the cache size in number of entries
 ResourceReference unregisterResourceReference(ResourceReference.Key key)
          Unregisters a ResourceReference by its identifier.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceReferenceRegistry

public ResourceReferenceRegistry()
Constructor.

Uses DefaultResourceReferenceFactory to create ResourceReference when there is no registered one for the requested attributes


ResourceReferenceRegistry

public ResourceReferenceRegistry(IResourceReferenceFactory resourceReferenceFactory)
Constructor

Parameters:
resourceReferenceFactory - The factory that will create ResourceReference by Key when there is no registered one
Method Detail

registerResourceReference

public final boolean registerResourceReference(ResourceReference reference)
Registers the given ResourceReference.

ResourceReference.canBeRegistered() must return true. Else, the resource reference will not be registered.

Parameters:
reference - the reference to register
Returns:
true if the resource was registered successfully or has been registered previously already.

unregisterResourceReference

public final ResourceReference unregisterResourceReference(ResourceReference.Key key)
Unregisters a ResourceReference by its identifier.

Parameters:
key - the ResourceReference's identifier
Returns:
The removed ResourceReference or null if the registry did not contain an entry for this key.

getResourceReference

public final ResourceReference getResourceReference(Class<?> scope,
                                                    String name,
                                                    Locale locale,
                                                    String style,
                                                    String variation,
                                                    boolean strict,
                                                    boolean createIfNotFound)
Get a resource reference matching the parameters from the registry or if not found and requested, create an default resource reference and add it to the registry.

Part of the search is scanning the class (scope) and it's superclass for static ResourceReference fields. Found fields get registered automatically (but are different from auto-generated ResourceReferences).

Parameters:
scope - The scope of resource reference (e.g. the Component's class)
name - The name of resource reference (e.g. filename)
locale - see Component
style - see Component
variation - see Component
strict - If true, "weaker" combination of scope, name, locale etc. are not tested
createIfNotFound - If true a default resource reference is created if no entry can be found in the registry. The newly created resource reference will be added to the registry.
Returns:
Either the resource reference found in the registry or, if requested, a resource reference automatically created based on the parameters provided. The automatically created resource reference will automatically be added to the registry.
See Also:
createDefaultResourceReference(org.apache.wicket.request.resource.ResourceReference.Key), ClassScanner

getResourceReference

public final ResourceReference getResourceReference(ResourceReference.Key key,
                                                    boolean strict,
                                                    boolean createIfNotFound)
Get a resource reference matching the parameters from the registry or if not found and requested, create an default resource reference and add it to the registry.

Part of the search is scanning the class (scope) and it's superclass for static ResourceReference fields. Found fields get registered automatically (but are different from auto-generated ResourceReferences).

Parameters:
key - The data making up the resource reference
strict - If true, "weaker" combination of scope, name, locale etc. are not tested
createIfNotFound - If true a default resource reference is created if no entry can be found in the registry. The newly created resource reference will be added to the registry.
Returns:
Either the resource reference found in the registry or, if requested, a resource reference automatically created based on the parameters provided. The automatically created resource reference will automatically be added to the registry.
See Also:
createDefaultResourceReference(org.apache.wicket.request.resource.ResourceReference.Key), ClassScanner

createDefaultResourceReference

protected ResourceReference createDefaultResourceReference(ResourceReference.Key key)
Creates a default resource reference in case no registry entry and it was requested to create one.

A PackageResourceReference will be created by default

Parameters:
key - the data making up the resource reference
Returns:
The ResourceReference created or null if not successful

setAutoAddedCapacity

public final void setAutoAddedCapacity(int autoAddedCapacity)
Set the cache size in number of entries

Parameters:
autoAddedCapacity - A value < 0 will disable aging of auto-create resource references. They will be created, added to the registry and live their until manually removed or the application shuts down.

getAutoAddedCapacity

public final int getAutoAddedCapacity()
Gets cache size in number of entries

Returns:
capacity

clearAutoAddedEntries

public final void clearAutoAddedEntries()
Unregisters all auto-added Resource References


getAutoAddedCacheSize

public final int getAutoAddedCacheSize()
Returns:
Number of auto-generated (and registered) resource references.

getSize

public final int getSize()
Returns:
Number of registered resource references (normal and auto-generated)


Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.