Class ResourceReferenceRegistry

java.lang.Object
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:
  • Constructor Details

    • 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 Details

    • 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

      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:
    • 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

      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)
    • getResourceReferenceFactory

      Returns:
      the factory that will create the resource reference by using the parsed ResourceReference.Key
    • setResourceReferenceFactory

      public void setResourceReferenceFactory(IResourceReferenceFactory resourceReferenceFactory)
      Sets the factory to use when a ResourceReference is not previously registered and a new instance should be created
      Parameters:
      resourceReferenceFactory - the factory that will create the resource reference by using the parsed ResourceReference.Key