org.osgi.resource

## Interface Requirement

All Known Subinterfaces:
  BundleRequirement

All Known Implementing Classes:
  BundleRequirementImpl

    @ConsumerType
    public interface Requirement

A requirement that has been declared from a `Resource` .

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.

Author:
  $Id: 210e427134eaf0404c4f374f619af972fb570572 $

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `equals(Object obj)` Compares this `Requirement` to another `Requirement`.
`Map<String,Object>` `getAttributes()` Returns the attributes of this requirement.
`Map<String,String>` `getDirectives()` Returns the directives of this requirement.
`String` `getNamespace()` Returns the namespace of this requirement.
`Resource` `getResource()` Returns the resource declaring this requirement.
`int` `hashCode()` Returns the hashCode of this `Requirement`.

### Method Detail

#### getNamespace

    String getNamespace()

Returns the namespace of this requirement.

Returns:
  The namespace of this requirement.

#### getDirectives

    Map<String,String> getDirectives()

Returns the directives of this requirement.

Returns:
  An unmodifiable map of directive names to directive values for this requirement, or an empty map if this requirement has no directives.

#### getAttributes

    Map<String,Object> getAttributes()

Returns the attributes of this requirement.

Requirement attributes have no specified semantics and are considered extra user defined information.

Returns:
  An unmodifiable map of attribute names to attribute values for this requirement, or an empty map if this requirement has no attributes.

#### getResource

    Resource getResource()

Returns the resource declaring this requirement.

Returns:
  The resource declaring this requirement. This can be `null` if this requirement is synthesized.

#### equals

    boolean equals(Object obj)

Compares this `Requirement` to another `Requirement`.

This `Requirement` is equal to another `Requirement` if they have the same namespace, directives and attributes and are declared by the same resource.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - The object to compare against this `Requirement`.
Returns:
  `true` if this `Requirement` is equal to the other object; `false` otherwise.

#### hashCode

    int hashCode()

Returns the hashCode of this `Requirement`.

Overrides:
  `hashCode` in class `Object`
Returns:
  The hashCode of this `Requirement`.