Class CapReqBuilder

    • Field Detail

      • REQ_ALIAS_IDENTITY

        private static final java.lang.String REQ_ALIAS_IDENTITY
        See Also:
        Constant Field Values
      • REQ_ALIAS_IDENTITY_NAME_ATTRIB

        private static final java.lang.String REQ_ALIAS_IDENTITY_NAME_ATTRIB
        See Also:
        Constant Field Values
      • REQ_ALIAS_IDENTITY_VERSION_ATTRIB

        private static final java.lang.String REQ_ALIAS_IDENTITY_VERSION_ATTRIB
        See Also:
        Constant Field Values
      • REQ_ALIAS_LITERAL

        private static final java.lang.String REQ_ALIAS_LITERAL
        See Also:
        Constant Field Values
      • REQ_ALIAS_LITERAL_ATTRIB

        private static final java.lang.String REQ_ALIAS_LITERAL_ATTRIB
        See Also:
        Constant Field Values
      • namespace

        private final java.lang.String namespace
      • resource

        private org.osgi.resource.Resource resource
      • attributes

        private final java.util.Map<java.lang.String,​java.lang.Object> attributes
      • directives

        private final java.util.Map<java.lang.String,​java.lang.String> directives
      • ESCAPE_FILTER_VALUE_P

        static java.util.regex.Pattern ESCAPE_FILTER_VALUE_P
        If value must contain one of the characters reverse solidus ('\' \), asterisk ('*' *), parentheses open ('(' () or parentheses close (')' )), then these characters should be preceded with the reverse solidus ('\' \) character. Spaces are significant in value. Space characters are defined by Character.isWhiteSpace().
    • Constructor Detail

      • CapReqBuilder

        public CapReqBuilder​(java.lang.String namespace)
      • CapReqBuilder

        public CapReqBuilder​(java.lang.String ns,
                             Attrs attrs)
                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • CapReqBuilder

        public CapReqBuilder​(org.osgi.resource.Resource resource,
                             java.lang.String namespace)
    • Method Detail

      • clone

        public static CapReqBuilder clone​(org.osgi.resource.Capability capability)
                                   throws java.lang.Exception
        Throws:
        java.lang.Exception
      • clone

        public static CapReqBuilder clone​(org.osgi.resource.Requirement requirement)
                                   throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getNamespace

        public java.lang.String getNamespace()
      • getResource

        public org.osgi.resource.Resource getResource()
      • setResource

        public CapReqBuilder setResource​(org.osgi.resource.Resource resource)
      • addAttribute

        public CapReqBuilder addAttribute​(java.lang.String name,
                                          java.lang.Object value)
                                   throws java.lang.Exception
        Throws:
        java.lang.Exception
      • isVersion

        public boolean isVersion​(java.lang.Object value)
      • addAttributes

        public CapReqBuilder addAttributes​(java.util.Map<? extends java.lang.String,​? extends java.lang.Object> attributes)
                                    throws java.lang.Exception
        Throws:
        java.lang.Exception
      • addDirective

        public CapReqBuilder addDirective​(java.lang.String name,
                                          java.lang.String value)
      • addDirectives

        public CapReqBuilder addDirectives​(java.util.Map<java.lang.String,​java.lang.String> directives)
      • buildCapability

        public org.osgi.resource.Capability buildCapability()
      • buildSyntheticCapability

        public org.osgi.resource.Capability buildSyntheticCapability()
      • buildRequirement

        public org.osgi.resource.Requirement buildRequirement()
      • buildSyntheticRequirement

        public org.osgi.resource.Requirement buildSyntheticRequirement()
      • createPackageRequirement

        public static final CapReqBuilder createPackageRequirement​(java.lang.String pkgName,
                                                                   java.lang.String range)
      • createBundleRequirement

        public static CapReqBuilder createBundleRequirement​(java.lang.String bsn,
                                                            java.lang.String range)
      • createSimpleRequirement

        public static CapReqBuilder createSimpleRequirement​(java.lang.String ns,
                                                            java.lang.String name,
                                                            java.lang.String range)
      • and

        public java.lang.CharSequence and​(java.lang.Object... exprs)
      • or

        public java.lang.CharSequence or​(java.lang.Object... exprs)
      • not

        public java.lang.CharSequence not​(java.lang.Object expr)
      • toFilter

        private java.lang.CharSequence toFilter​(java.lang.Object expr)
      • filter

        public CapReqBuilder filter​(java.lang.CharSequence f)
      • getRequirementsFrom

        public static java.util.List<org.osgi.resource.Requirement> getRequirementsFrom​(Parameters rr)
                                                                                 throws java.lang.Exception
        Equivalent to getRequirementsFrom(rr, true).
        Parameters:
        rr -
        Throws:
        java.lang.Exception
      • getRequirementsFrom

        public static java.util.List<org.osgi.resource.Requirement> getRequirementsFrom​(Parameters rr,
                                                                                        boolean unalias)
                                                                                 throws java.lang.Exception
        Parse requirements from a Parameters set in the form of an OSGi Require-Capability header.
        Parameters:
        rr - The Require-Capability header.
        unalias - Whether to unalias requirements. If false then an aliases such as "bundle; bsn=org.foo" will be returned as a raw Requirement in the unspecified namespace "bundle".
        Returns:
        The list of parsed requirements.
        Throws:
        java.lang.Exception
      • getRequirementFrom

        public static org.osgi.resource.Requirement getRequirementFrom​(java.lang.String namespace,
                                                                       Attrs attrs)
                                                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getRequirementFrom

        public static org.osgi.resource.Requirement getRequirementFrom​(java.lang.String namespace,
                                                                       Attrs attrs,
                                                                       boolean unalias)
                                                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • createCapReqBuilder

        public static CapReqBuilder createCapReqBuilder​(java.lang.String namespace,
                                                        Attrs attrs)
                                                 throws java.lang.Exception
        Throws:
        java.lang.Exception
      • unalias

        private static org.osgi.resource.Requirement unalias​(org.osgi.resource.Requirement requirement)
                                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • copyAttribs

        private static void copyAttribs​(org.osgi.resource.Requirement req,
                                        CapReqBuilder builder,
                                        java.util.Set<java.lang.String> excludes)
                                 throws java.lang.Exception
        Throws:
        java.lang.Exception
      • copyDirectives

        private static void copyDirectives​(org.osgi.resource.Requirement req,
                                           CapReqBuilder builder,
                                           java.util.Set<java.lang.String> excludes)
                                    throws java.lang.Exception
        Throws:
        java.lang.Exception
      • toRange

        private static VersionRange toRange​(java.lang.Object o)
                                     throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • getCapabilitiesFrom

        public static java.util.List<org.osgi.resource.Capability> getCapabilitiesFrom​(Parameters rr)
                                                                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getCapabilityFrom

        public static org.osgi.resource.Capability getCapabilityFrom​(java.lang.String namespace,
                                                                     Attrs attrs)
                                                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • from

        public CapReqBuilder from​(org.osgi.resource.Capability c)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • from

        public CapReqBuilder from​(org.osgi.resource.Requirement r)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • copy

        public static org.osgi.resource.Capability copy​(org.osgi.resource.Capability c,
                                                        org.osgi.resource.Resource r)
                                                 throws java.lang.Exception
        Throws:
        java.lang.Exception
      • copy

        public static org.osgi.resource.Requirement copy​(org.osgi.resource.Requirement c,
                                                         org.osgi.resource.Resource r)
                                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • addAttributesOrDirectives

        public void addAttributesOrDirectives​(Attrs attrs)
                                       throws java.lang.Exception
        In bnd, we only use one map for both directives & attributes. This method will properly dispatch them AND take care of typing
        Parameters:
        attrs -
        Throws:
        java.lang.Exception
      • addFilter

        public void addFilter​(java.lang.String ns,
                              java.lang.String name,
                              java.lang.String version,
                              Attrs attrs)
      • escapeFilterValue

        public static java.lang.String escapeFilterValue​(java.lang.String value)
      • and

        public void and​(java.lang.String... s)
      • isPackage

        public boolean isPackage()
      • isHost

        public boolean isHost()
      • isBundle

        public boolean isBundle()
      • isService

        public boolean isService()
      • isContract

        public boolean isContract()
      • isIdentity

        public boolean isIdentity()
      • isContent

        public boolean isContent()
      • isEE

        public boolean isEE()
      • isExtender

        public boolean isExtender()
      • toAttrs

        public Attrs toAttrs()
      • toBndVersions

        private java.lang.Object toBndVersions​(java.lang.Object value)
      • toVersions

        private java.lang.Object toVersions​(java.lang.Object value)
      • createRequirementFromCapability

        public static RequirementBuilder createRequirementFromCapability​(org.osgi.resource.Capability cap)