Wiring
Date: 2016-06-24

org.osgi.resource

## Interface Wiring

- All Known Subinterfaces:
    BundleWiring

      @ConsumerType
      public interface Wiring

  A wiring for a resource. A wiring is associated with a resource and represents the dependencies with other wirings.

  Instances of this type must be effectively immutable. That is, for a given instance of this interface, the methods defined by this interface must always return the same result.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<Wire>` | `getProvidedResourceWires(java.lang.String namespace)` Returns the `Wire`s to the provided `capabilities` of this wiring.
    `java.util.List<Wire>` | `getRequiredResourceWires(java.lang.String namespace)` Returns the `Wire`s to the `requirements` in use by this wiring.
    `Resource` | `getResource()` Returns the resource associated with this wiring.
    `java.util.List<Capability>` | `getResourceCapabilities(java.lang.String namespace)` Returns the capabilities provided by this wiring.
    `java.util.List<Requirement>` | `getResourceRequirements(java.lang.String namespace)` Returns the requirements of this wiring.

- - ### Method Detail

    - #### getResourceCapabilities

          java.util.List<Capability> getResourceCapabilities(java.lang.String namespace)

      Returns the capabilities provided by this wiring.

      Only capabilities considered by the resolver are returned. For example, capabilities with `effective` directive not equal to `resolve` are not returned.

      A capability may not be required by any wiring and thus there may be no `wires` for the capability.

      A wiring for a non-fragment resource provides a subset of the declared capabilities from the resource and all attached fragment resources†. Not all declared capabilities may be provided since some may be discarded. For example, if a package is declared to be both exported and imported, only one is selected and the other is discarded.

      A wiring for a fragment resource with a symbolic name must provide exactly one `osgi.identity` capability.

      † The `osgi.identity` capability provided by attached fragment resource must not be included in the capabilities of the host wiring.

      Parameters:
        `namespace` - The namespace of the capabilities to return or `null` to return the capabilities from all namespaces.
      Returns:
        A list containing a snapshot of the `Capability`s, or an empty list if this wiring provides no capabilities in the specified namespace. For a given namespace, the list contains the capabilities in the order the capabilities were specified in the manifests of the `resource` and the attached fragment resources† of this wiring. There is no ordering defined between capabilities in different namespaces.

    - #### getResourceRequirements

          java.util.List<Requirement> getResourceRequirements(java.lang.String namespace)

      Returns the requirements of this wiring.

      Only requirements considered by the resolver are returned. For example, requirements with `effective` directive not equal to `resolve` are not returned.

      A wiring for a non-fragment resource has a subset of the declared requirements from the resource and all attached fragment resources. Not all declared requirements may be present since some may be discarded. For example, if a package is declared to be optionally imported and is not actually imported, the requirement must be discarded.

      Parameters:
        `namespace` - The namespace of the requirements to return or `null` to return the requirements from all namespaces.
      Returns:
        A list containing a snapshot of the `Requirement`s, or an empty list if this wiring uses no requirements in the specified namespace. For a given namespace, the list contains the requirements in the order the requirements were specified in the manifests of the `resource` and the attached fragment resources of this wiring. There is no ordering defined between requirements in different namespaces.

    - #### getProvidedResourceWires

          java.util.List<Wire> getProvidedResourceWires(java.lang.String namespace)

      Returns the `Wire`s to the provided `capabilities` of this wiring.
      Parameters:
        `namespace` - The namespace of the capabilities for which to return wires or `null` to return the wires for the capabilities in all namespaces.
      Returns:
        A list containing a snapshot of the `Wire`s for the `capabilities` of this wiring, or an empty list if this wiring has no capabilities in the specified namespace. For a given namespace, the list contains the wires in the order the capabilities were specified in the manifests of the `resource` and the attached fragment resources of this wiring. There is no ordering defined between capabilities in different namespaces.

    - #### getRequiredResourceWires

          java.util.List<Wire> getRequiredResourceWires(java.lang.String namespace)

      Returns the `Wire`s to the `requirements` in use by this wiring.
      Parameters:
        `namespace` - The namespace of the requirements for which to return wires or `null` to return the wires for the requirements in all namespaces.
      Returns:
        A list containing a snapshot of the `Wire`s for the `requirements` of this wiring, or an empty list if this wiring has no requirements in the specified namespace. For a given namespace, the list contains the wires in the order the requirements were specified in the manifests of the `resource` and the attached fragment resources of this wiring. There is no ordering defined between requirements in different namespaces.

    - #### getResource

          Resource getResource()

      Returns the resource associated with this wiring.
      Returns:
        The resource associated with this wiring.