Package org.apache.tapestry5.ioc.internal.services

## Class CachingObjectCreator<T>

- java.lang.Object
- - org.apache.tapestry5.commons.internal.util.LockSupport
  - - org.apache.tapestry5.ioc.internal.services.CachingObjectCreator<T>

- All Implemented Interfaces:
    `ObjectCreator<T>`

      public class CachingObjectCreator<T>
      extends LockSupport
      implements ObjectCreator<T>

  An `ObjectCreator` that delegates to another `ObjectCreator` and caches the result.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CachingObjectCreator​(ObjectCreator<T> delegate)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `T` | `createObject()` | Create and return the object.

    - ### 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 Detail

    - #### CachingObjectCreator

          public CachingObjectCreator​(ObjectCreator<T> delegate)

  - ### Method Detail

    - #### createObject

          public T createObject()

      Description copied from interface: `ObjectCreator`
      Create and return the object. In some limited circumstances, the implementation may cache the result, returning the same object for repeated calls.
      Specified by:
        `createObject` in interface `ObjectCreator<T>`