Package org.apache.tapestry5.internal.services

# Class ApplicationMessageCatalogObjectProvider

java.lang.Object
org.apache.tapestry5.commons.internal.util.LockSupport
org.apache.tapestry5.internal.services.ApplicationMessageCatalogObjectProvider

All Implemented Interfaces:
  `ObjectProvider`

public class ApplicationMessageCatalogObjectProvider extends LockSupport implements ObjectProvider
Allows for injection of the global application message catalog into services. The injected value is, in fact, a proxy. Each method access of the proxy will determine the current thread's locale, and delegate to the actual global message catalog for that particular locale. There's caching to keep it reasonably efficient.

Since:
  5.2.0
See Also:
  - `ComponentMessagesSource.getApplicationCatalog(Locale)`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ApplicationMessageCatalogObjectProvider(ObjectLocator locator)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `objectWasInvalidated()`
  `<T> T`
  `provide(Class<T> objectType, AnnotationProvider annotationProvider, ObjectLocator locator)`
  Provides an object based on an expression.

  ### Methods inherited from class org.apache.tapestry5.commons.internal.util.LockSupport

  `acquireReadLock, downgradeWriteLockToReadLock, releaseReadLock, releaseWriteLock, takeWriteLock, upgradeReadLockToWriteLock`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ApplicationMessageCatalogObjectProvider

    public ApplicationMessageCatalogObjectProvider(ObjectLocator locator)

- ## Method Details

  - ### provide

    public <T> T provide(Class<T> objectType, AnnotationProvider annotationProvider, ObjectLocator locator)
    Description copied from interface: `ObjectProvider`
    Provides an object based on an expression. The process of providing objects occurs within a particular context, which will typically be a service builder method, service contributor method, or service decorator method. The locator parameter provides access to the services visible to that context.
    Specified by:
      `provide` in interface `ObjectProvider`
    Parameters:
      `objectType` - the expected object type
      `annotationProvider` - provides access to annotations (typically, the field or parameter to which an injection-related annotation is attached); annotations on the field or parameter may also be used when resolving the desired object
      `locator` - locator for the context in which the provider is being used
    Returns:
      the requested object, or null if this object provider can not supply an object

  - ### objectWasInvalidated

    public void objectWasInvalidated()