Class RequirementImpl

java.lang.Object
org.apache.felix.utils.resource.RequirementImpl
All Implemented Interfaces:
org.osgi.resource.Requirement

public class RequirementImpl extends Object implements org.osgi.resource.Requirement
Implementation of the OSGi Requirement interface.
  • Field Details

    • resource

      protected final org.osgi.resource.Resource resource
      The resource. Required.
    • namespace

      protected final String namespace
      The namespace. Required.
    • directives

      protected final Map<String,String> directives
      Optional attributes. Never null.
    • attributes

      protected final Map<String,Object> attributes
      Optional attributes. Never null.
  • Constructor Details

    • RequirementImpl

      public RequirementImpl(org.osgi.resource.Resource res, String ns, Map<String,String> dirs, Map<String,Object> attrs)
      Create a requirement.
      Parameters:
      res - The resource associated with the requirement.
      ns - The namespace of the requirement.
      attrs - The attributes of the requirement.
      dirs - The directives of the requirement.
    • RequirementImpl

      public RequirementImpl(org.osgi.resource.Resource res, String ns, String filter)
      Create a requirement with a namespace and a filter. This is a convenience method that creates a requirement with an empty attributes map and a single 'filter' directive.
      Parameters:
      res - The resource associated with the requirement.
      ns - The namespace for the requirement.
      filter - The filter.
    • RequirementImpl

      public RequirementImpl(org.osgi.resource.Resource resource, org.osgi.resource.Requirement requirement)
      Create a requirement based on an existing requirement, providing the resource. The namespace, attributes and directives are copied from the provided requirement.
      Parameters:
      requirement - The requirement to base the new requirement on.
      resource - The resource to be associated with the requirement
    • RequirementImpl

      public RequirementImpl(org.osgi.resource.Resource resource, String path, Map<String,String> dirs, Map<String,Object> attrs, SimpleFilter sf)
  • Method Details

    • matches

      public boolean matches(org.osgi.resource.Capability cap)
    • isOptional

      public boolean isOptional()
    • getFilter

      public SimpleFilter getFilter()
    • isOptional

      public static boolean isOptional(org.osgi.resource.Requirement requirement)
      Utility method to check whether a requirement is optional. This method works with any object implementing the requirement interface.
      Parameters:
      requirement - A requirement
      Returns:
      true if the requirement it optional, false otherwise.
    • getFilter

      public static SimpleFilter getFilter(org.osgi.resource.Requirement requirement)
      Utility method to obtain a SimpleFilter from a given requirement. If the requirement contains a Constants.FILTER_DIRECTIVE directive, it will be used, else, the filter will be derived from the attributes.
      Parameters:
      requirement - A requirement
      Returns:
      a valid filter, never null.
    • getNamespace

      public String getNamespace()
      Return the namespace.
      Returns:
      The namespace. This is never @{code null}.
    • getAttributes

      public Map<String,Object> getAttributes()
      Return the attributes.
      Returns:
      The attributes, might be empty.
    • getDirectives

      public Map<String,String> getDirectives()
      Return the directives.
      Returns:
      The directives, might be empty.
    • getResource

      public org.osgi.resource.Resource getResource()
      Return the resource.
      Returns:
      The resource or @{code null}.
    • toString

      public String toString()
      Overrides:
      toString in class Object