Envelope
Date: 2016-06-25

org.osgi.service.wireadmin

## Interface Envelope

- All Known Implementing Classes:
    BasicEnvelope

      public interface Envelope

  Identifies a contained value. An `Envelope` object combines a status value, an identification object and a scope name. The `Envelope` object allows the use of standard Java types when a Producer service can produce more than one kind of object. The `Envelope` object allows the Consumer service to recognize the kind of object that is received. For example, a door lock could be represented by a `Boolean` object. If the `Producer` service would send such a `Boolean` object, then the Consumer service would not know what door the `Boolean` object represented. The `Envelope` object contains an identification object so the Consumer service can discriminate between different kinds of values. The identification object may be a simple `String` object, but it can also be a domain specific object that is mutually agreed by the Producer and the Consumer service. This object can then contain relevant information that makes the identification easier.

  The scope name of the envelope is used for security. The Wire object must verify that any `Envelope` object send through the `update` method or coming from the `poll` method has a scope name that matches the permissions of both the Producer service and the Consumer service involved. The wireadmin package also contains a class `BasicEnvelope` that implements the methods of this interface.

  See Also:
    `WirePermission`, `BasicEnvelope`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `getIdentification()` Return the identification of this `Envelope` object.
    `java.lang.String` | `getScope()` Return the scope name of this `Envelope` object.
    `java.lang.Object` | `getValue()` Return the value associated with this `Envelope` object.

- - ### Method Detail

    - #### getValue

          java.lang.Object getValue()

      Return the value associated with this `Envelope` object.
      Returns:
        the value of the status item, or `null` when no item is associated with this object.

    - #### getIdentification

          java.lang.Object getIdentification()

      Return the identification of this `Envelope` object. An identification may be of any Java type. The type must be mutually agreed between the Consumer and Producer services.
      Returns:
        an object which identifies the status item in the address space of the composite producer, must not be null.

    - #### getScope

          java.lang.String getScope()

      Return the scope name of this `Envelope` object. Scope names are used to restrict the communication between the Producer and Consumer services. Only `Envelopes` objects with a scope name that is permitted for the Producer and the Consumer services must be passed through a `Wire` object.
      Returns:
        the security scope for the status item, must not be null.