File: Namespace.java

package info (click to toggle)
libequinox-osgi-java 3.9.1-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 5,068 kB
  • sloc: java: 57,768; makefile: 9
file content (154 lines) | stat: -rw-r--r-- 5,238 bytes parent folder | download | duplicates (8)
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
	}
}