1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
/*
* Copyright (c) OSGi Alliance (2012). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.osgi.resource;
/**
* Capability and Requirement Namespaces base class.
*
* <p>
* This class is the common class shared by all OSGi defined namespaces. It
* defines the names for the common attributes and directives for the OSGi
* specified namespaces.
*
* <p>
* The OSGi Alliance reserves the right to extend the set of directives and
* attributes which have specified semantics for all of the specified
* namespaces.
*
* <p>
* The values associated with these keys are of type {@code String}, unless
* otherwise indicated.
*
* @Immutable
* @version $Id: 43c9ff5cea19546d71c4703db71a2b5070a3f2fa $
*/
public abstract class Namespace {
/**
* The capability directive used to specify the comma separated list of
* package names used by a capability.
*/
public final static String CAPABILITY_USES_DIRECTIVE = "uses";
/**
* The capability directive used to specify the effective time for the
* capability. The default value is {@link #EFFECTIVE_RESOLVE resolve}.
*
* @see #EFFECTIVE_RESOLVE resolve
* @see #EFFECTIVE_ACTIVE active
*/
public final static String CAPABILITY_EFFECTIVE_DIRECTIVE = "effective";
/**
* The requirement directive used to specify a capability filter. This
* filter is used to match against a capability's attributes.
*/
public final static String REQUIREMENT_FILTER_DIRECTIVE = "filter";
/**
* The requirement directive used to specify the resolution type for a
* requirement. The default value is {@link #RESOLUTION_MANDATORY mandatory}
* .
*
* @see #RESOLUTION_MANDATORY mandatory
* @see #RESOLUTION_OPTIONAL optional
*/
public final static String REQUIREMENT_RESOLUTION_DIRECTIVE = "resolution";
/**
* The directive value identifying a mandatory requirement resolution type.
* A mandatory resolution type indicates that the requirement must be
* resolved when the resource is resolved. If such a requirement cannot be
* resolved, the resource fails to resolve.
*
* @see #REQUIREMENT_RESOLUTION_DIRECTIVE
*/
public final static String RESOLUTION_MANDATORY = "mandatory";
/**
* The directive value identifying an optional requirement resolution type.
* An optional resolution type indicates that the requirement is optional
* and the resource may be resolved without the requirement being resolved.
*
* @see #REQUIREMENT_RESOLUTION_DIRECTIVE
*/
public final static String RESOLUTION_OPTIONAL = "optional";
/**
* The requirement directive used to specify the effective time for the
* requirement. The default value is {@link #EFFECTIVE_RESOLVE resolve}.
*
* @see #EFFECTIVE_RESOLVE resolve
* @see #EFFECTIVE_ACTIVE active
*/
public final static String REQUIREMENT_EFFECTIVE_DIRECTIVE = "effective";
/**
* The directive value identifying a {@link #CAPABILITY_EFFECTIVE_DIRECTIVE
* capability} or {@link #REQUIREMENT_EFFECTIVE_DIRECTIVE requirement} that
* is effective at resolve time. Capabilities and requirements with an
* effective time of resolve are the only capabilities which are processed
* while resolving a resource.
*
* @see #REQUIREMENT_EFFECTIVE_DIRECTIVE
* @see #CAPABILITY_EFFECTIVE_DIRECTIVE
*/
public final static String EFFECTIVE_RESOLVE = "resolve";
/**
* The directive value identifying a {@link #CAPABILITY_EFFECTIVE_DIRECTIVE
* capability} or {@link #REQUIREMENT_EFFECTIVE_DIRECTIVE requirement} that
* is effective at active time. Capabilities and requirements with an
* effective time of active are ignored while resolving a resource.
*
* @see #REQUIREMENT_EFFECTIVE_DIRECTIVE
* @see #CAPABILITY_EFFECTIVE_DIRECTIVE
*/
public final static String EFFECTIVE_ACTIVE = "active";
/**
* The requirement directive used to specify the cardinality for a
* requirement. The default value is {@link #CARDINALITY_SINGLE single}.
*
* @see #CARDINALITY_MULTIPLE multiple
* @see #CARDINALITY_SINGLE single
*/
public final static String REQUIREMENT_CARDINALITY_DIRECTIVE = "cardinality";
/**
* The directive value identifying a multiple
* {@link #REQUIREMENT_CARDINALITY_DIRECTIVE cardinality} type.
*
* @see #REQUIREMENT_CARDINALITY_DIRECTIVE
*/
public final static String CARDINALITY_MULTIPLE = "multiple";
/**
* The directive value identifying a
* {@link #REQUIREMENT_CARDINALITY_DIRECTIVE cardinality} type of single.
*
* @see #REQUIREMENT_CARDINALITY_DIRECTIVE
*/
public final static String CARDINALITY_SINGLE = "single";
/**
* Protected constructor for Namespace sub-types.
*/
protected Namespace() {
// empty
}
}
|