ReferencePolicy
Date: 2016-06-25

org.osgi.service.component.annotations

## Enum ReferencePolicy

- java.lang.Object
- - java.lang.Enum<ReferencePolicy>
  - - org.osgi.service.component.annotations.ReferencePolicy

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<ReferencePolicy>

      public enum ReferencePolicy
      extends java.lang.Enum<ReferencePolicy>

  Policy for the `Reference` annotation.

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `DYNAMIC` The dynamic policy is slightly more complex since the component implementation must properly handle changes in the set of bound services.
    `STATIC` The static policy is the most simple policy and is the default policy.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `toString()`
    `static ReferencePolicy` | `valueOf(java.lang.String name)` Returns the enum constant of this type with the specified name.
    `static ReferencePolicy[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### STATIC

          public static final ReferencePolicy STATIC

      The static policy is the most simple policy and is the default policy. A component instance never sees any of the dynamics. Component configurations are deactivated before any bound service for a reference having a static policy becomes unavailable. If a target service is available to replace the bound service which became unavailable, the component configuration must be reactivated and bound to the replacement service.

    - #### DYNAMIC

          public static final ReferencePolicy DYNAMIC

      The dynamic policy is slightly more complex since the component implementation must properly handle changes in the set of bound services. With the dynamic policy, SCR can change the set of bound services without deactivating a component configuration. If the component uses the event strategy to access services, then the component instance will be notified of changes in the set of bound services by calls to the bind and unbind methods.

  - ### Method Detail

    - #### values

          public static ReferencePolicy[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (ReferencePolicy c : ReferencePolicy.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static ReferencePolicy valueOf(java.lang.String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
        `java.lang.NullPointerException` - if the argument is null

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Enum<ReferencePolicy>`