Package aQute.bnd.osgi.resource
Class CapReqBuilder
- java.lang.Object
-
- aQute.bnd.osgi.resource.CapReqBuilder
-
- Direct Known Subclasses:
CapabilityBuilder,RequirementBuilder
public class CapReqBuilder extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.lang.Object>attributesprivate java.util.Map<java.lang.String,java.lang.String>directivesprivate java.lang.Stringnamespaceprivate static java.lang.StringREQ_ALIAS_IDENTITYprivate static java.lang.StringREQ_ALIAS_IDENTITY_NAME_ATTRIBprivate static java.lang.StringREQ_ALIAS_IDENTITY_VERSION_ATTRIBprivate static java.lang.StringREQ_ALIAS_LITERALprivate static java.lang.StringREQ_ALIAS_LITERAL_ATTRIBprivate org.osgi.resource.Resourceresource
-
Constructor Summary
Constructors Constructor Description CapReqBuilder(java.lang.String namespace)CapReqBuilder(java.lang.String namespace, Attrs attrs)CapReqBuilder(org.osgi.resource.Resource resource, java.lang.String namespace)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description CapReqBuilderaddAttribute(java.lang.String name, java.lang.Object value)CapReqBuilderaddAttributes(Attrs attrs)In bnd, we use one map for both directives & attributes.CapReqBuilderaddAttributes(java.util.Map<? extends java.lang.String,? extends java.lang.Object> attributes)voidaddAttributesOrDirectives(Attrs attrs)In bnd, we use one map for both directives & attributes.CapReqBuilderaddDirective(java.lang.String name, java.lang.String value)CapReqBuilderaddDirectives(Attrs directives)CapReqBuilderaddDirectives(java.util.Map<java.lang.String,java.lang.String> directives)voidaddFilter(java.lang.String nameAttr, java.lang.String name, java.lang.String versionRange, Attrs attrs)java.lang.CharSequenceand(java.lang.Object... exprs)voidand(java.lang.String... s)private static voidappendFilterEquals(java.lang.StringBuilder filter, java.lang.String name, java.lang.String value)private static voidappendFilterVersionRange(java.lang.StringBuilder filter, java.lang.String name, java.lang.String versionRange)org.osgi.resource.CapabilitybuildCapability()org.osgi.resource.RequirementbuildRequirement()org.osgi.resource.CapabilitybuildSyntheticCapability()org.osgi.resource.RequirementbuildSyntheticRequirement()static CapReqBuilderclone(org.osgi.resource.Capability capability)static CapReqBuilderclone(org.osgi.resource.Requirement requirement)static org.osgi.resource.Capabilitycopy(org.osgi.resource.Capability capability, org.osgi.resource.Resource resource)static org.osgi.resource.Requirementcopy(org.osgi.resource.Requirement requirement, org.osgi.resource.Resource resource)static CapReqBuildercreateBundleRequirement(java.lang.String name, java.lang.String versionRange)static CapReqBuildercreateCapReqBuilder(java.lang.String namespace, Attrs attrs)static CapabilityBuildercreatePackageCapability(java.lang.String name, Attrs attrs, java.lang.String bundle_symbolic_name, org.osgi.framework.Version bundle_version)static RequirementBuildercreatePackageRequirement(java.lang.String name, Attrs attrs, java.lang.String versionRange)static CapReqBuildercreatePackageRequirement(java.lang.String name, java.lang.String versionRange)static RequirementBuildercreateRequirementFromCapability(org.osgi.resource.Capability capability)static RequirementBuildercreateServiceRequirement(java.lang.String name)static CapReqBuildercreateSimpleRequirement(java.lang.String namespace, java.lang.String name, java.lang.String versionRange)static java.lang.StringescapeFilterValue(java.lang.String value)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.private static java.lang.StringBuilderescapeFilterValue(java.lang.StringBuilder sb, java.lang.String value)CapReqBuilderfilter(java.lang.CharSequence f)CapReqBuilderfrom(org.osgi.resource.Capability capability)CapReqBuilderfrom(org.osgi.resource.Requirement requirement)static java.util.List<org.osgi.resource.Capability>getCapabilitiesFrom(Parameters rr)static org.osgi.resource.CapabilitygetCapabilityFrom(java.lang.String namespace, Attrs attrs)java.lang.StringgetNamespace()static org.osgi.resource.RequirementgetRequirementFrom(java.lang.String namespace, Attrs attrs)static org.osgi.resource.RequirementgetRequirementFrom(java.lang.String namespace, Attrs attrs, boolean unalias)static java.util.List<org.osgi.resource.Requirement>getRequirementsFrom(Parameters rr)Equivalent togetRequirementsFrom(rr, true).static java.util.List<org.osgi.resource.Requirement>getRequirementsFrom(Parameters rr, boolean unalias)Parse requirements from a Parameters set in the form of an OSGi Require-Capability header.org.osgi.resource.ResourcegetResource()booleanhasAttribute(java.lang.String name)booleanhasDirective(java.lang.String name)booleanisBundle()booleanisContent()booleanisContract()booleanisEE()booleanisExtender()booleanisHost()booleanisIdentity()booleanisPackage()booleanisService()booleanisVersion(java.lang.Object value)java.lang.CharSequencenot(java.lang.Object expr)java.lang.CharSequenceor(java.lang.Object... exprs)CapReqBuilderremoveAttribute(java.lang.String name)CapReqBuilderremoveDirective(java.lang.String name)CapReqBuildersetResource(org.osgi.resource.Resource resource)AttrstoAttrs()private java.lang.ObjecttoBndVersions(java.lang.Object value)private java.lang.CharSequencetoFilter(java.lang.Object expr)java.lang.StringtoString()private java.lang.ObjecttoVersions(java.lang.Object value)static org.osgi.resource.Requirementunalias(org.osgi.resource.Requirement requirement)Convert an alias requirement to its canonical form.
-
-
-
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
-
-
Constructor Detail
-
CapReqBuilder
public CapReqBuilder(java.lang.String namespace)
-
CapReqBuilder
public CapReqBuilder(java.lang.String namespace, Attrs attrs)
-
CapReqBuilder
public CapReqBuilder(org.osgi.resource.Resource resource, java.lang.String namespace)
-
-
Method Detail
-
clone
public static CapReqBuilder clone(org.osgi.resource.Capability capability)
-
clone
public static CapReqBuilder clone(org.osgi.resource.Requirement requirement)
-
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)
-
hasAttribute
public boolean hasAttribute(java.lang.String name)
-
removeAttribute
public CapReqBuilder removeAttribute(java.lang.String name)
-
isVersion
public boolean isVersion(java.lang.Object value)
-
addAttributes
public CapReqBuilder addAttributes(java.util.Map<? extends java.lang.String,? extends java.lang.Object> attributes)
-
addDirective
public CapReqBuilder addDirective(java.lang.String name, java.lang.String value)
-
hasDirective
public boolean hasDirective(java.lang.String name)
-
removeDirective
public CapReqBuilder removeDirective(java.lang.String name)
-
addDirectives
public CapReqBuilder addDirectives(Attrs directives)
-
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 CapReqBuilder createPackageRequirement(java.lang.String name, java.lang.String versionRange)
-
createPackageRequirement
public static RequirementBuilder createPackageRequirement(java.lang.String name, Attrs attrs, java.lang.String versionRange)
-
createPackageCapability
public static CapabilityBuilder createPackageCapability(java.lang.String name, Attrs attrs, java.lang.String bundle_symbolic_name, org.osgi.framework.Version bundle_version)
-
createBundleRequirement
public static CapReqBuilder createBundleRequirement(java.lang.String name, java.lang.String versionRange)
-
createSimpleRequirement
public static CapReqBuilder createSimpleRequirement(java.lang.String namespace, java.lang.String name, java.lang.String versionRange)
-
createServiceRequirement
public static RequirementBuilder createServiceRequirement(java.lang.String name)
-
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)
Equivalent togetRequirementsFrom(rr, true).- Parameters:
rr-
-
getRequirementsFrom
public static java.util.List<org.osgi.resource.Requirement> getRequirementsFrom(Parameters rr, boolean unalias)
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.
-
getRequirementFrom
public static org.osgi.resource.Requirement getRequirementFrom(java.lang.String namespace, Attrs attrs)
-
getRequirementFrom
public static org.osgi.resource.Requirement getRequirementFrom(java.lang.String namespace, Attrs attrs, boolean unalias)
-
createCapReqBuilder
public static CapReqBuilder createCapReqBuilder(java.lang.String namespace, Attrs attrs)
-
unalias
public static org.osgi.resource.Requirement unalias(org.osgi.resource.Requirement requirement)
Convert an alias requirement to its canonical form. For example: "bnd.identity; id=org.example; version='[1.0,2.0)'" will be converted to "osgi.identity; filter:='(&(osgi.identity=org.example)(version>=1.0)(!(version>=2.0)))'" Requirements that are not recognized as aliases will be returned unchanged.
-
getCapabilitiesFrom
public static java.util.List<org.osgi.resource.Capability> getCapabilitiesFrom(Parameters rr)
-
getCapabilityFrom
public static org.osgi.resource.Capability getCapabilityFrom(java.lang.String namespace, Attrs attrs)
-
from
public CapReqBuilder from(org.osgi.resource.Capability capability)
-
from
public CapReqBuilder from(org.osgi.resource.Requirement requirement)
-
copy
public static org.osgi.resource.Capability copy(org.osgi.resource.Capability capability, org.osgi.resource.Resource resource)
-
copy
public static org.osgi.resource.Requirement copy(org.osgi.resource.Requirement requirement, org.osgi.resource.Resource resource)
-
addAttributesOrDirectives
public void addAttributesOrDirectives(Attrs attrs)
In bnd, we use one map for both directives & attributes. This method will properly dispatch them AND take care of typing- Parameters:
attrs-
-
addAttributes
public CapReqBuilder addAttributes(Attrs attrs)
In bnd, we use one map for both directives & attributes. This method will ignore directives.- Parameters:
attrs-
-
addFilter
public void addFilter(java.lang.String nameAttr, java.lang.String name, java.lang.String versionRange, Attrs attrs)
-
appendFilterEquals
private static void appendFilterEquals(java.lang.StringBuilder filter, java.lang.String name, java.lang.String value)
-
appendFilterVersionRange
private static void appendFilterVersionRange(java.lang.StringBuilder filter, java.lang.String name, java.lang.String versionRange)
-
escapeFilterValue
public static java.lang.String escapeFilterValue(java.lang.String value)
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().
-
escapeFilterValue
private static java.lang.StringBuilder escapeFilterValue(java.lang.StringBuilder sb, 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 capability)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-