Package com.zfabrik.impl.components.any

## Class AnyResource

- java.lang.Object
- - com.zfabrik.resources.provider.Resource
  - - com.zfabrik.impl.components.any.AnyResource

-     public class AnyResource
      extends com.zfabrik.resources.provider.Resource

  An arbitrary resource. For any class, a resource will be maintained that returns for any implemented class or interface of the given class. If the class implements Resource, all Resource calls will be delegated. If the class implements Runnable, it will be called upon system state attain operations.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AnyResource​(java.lang.String name)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> T` | `as​(java.lang.Class<T> clz)` | Retrieve a typed representation of the resource.
    `void` | `invalidate()` | This method gets called whenever a dependency resource has been invalidated or this resource needs to be invalidated.

    - ### Methods inherited from class com.zfabrik.resources.provider.Resource

      `as, handle, init, init`

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

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

- - ### Constructor Detail

    - #### AnyResource

          public AnyResource​(java.lang.String name)

  - ### Method Detail

    - #### as

          public <T> T as​(java.lang.Class<T> clz)

      Description copied from class: `com.zfabrik.resources.provider.Resource`
      Retrieve a typed representation of the resource.

      Overrides:
        `as` in class `com.zfabrik.resources.provider.Resource`
      Parameters:
        `clz` - expected return type
      Returns:
        the expected return type instance represented by the resource or `null` if the type facade is not supported.

    - #### invalidate

          public void invalidate()
                          throws com.zfabrik.resources.ResourceBusyException

      Description copied from class: `com.zfabrik.resources.provider.Resource`
      This method gets called whenever a dependency resource has been invalidated or this resource needs to be invalidated.

      This code should be executed in a life cycle code block of this resource instance, i.e. where dependencies are effectively managed, so that race conditions can be avoided.

      State changing methods of a resource should always be synchronized (e.g. on this). This is in particular true for cross-resource dependencies. In order to assure consistency under race conditions, a dependent resource should first declare its dependency and then retrieve the resource implementation. In case of failures, resources should clean up by calling `handle().invalidate(true);`

      Overrides:
        `invalidate` in class `com.zfabrik.resources.provider.Resource`
      Throws:
        `com.zfabrik.resources.ResourceBusyException`