Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 9f098a6edef3359b4dbd21e1e58bbad01b89b995 (plain) (blame)
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/*
 * Copyright (c) OSGi Alliance (2013, 2014). 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.service.component.runtime.dto;

import java.util.Map;
import org.osgi.dto.DTO;
import org.osgi.framework.dto.BundleDTO;

/**
 * A representation of a declared component description.
 * 
 * @since 1.3
 * @NotThreadSafe
 * @author $Id$
 */
public class ComponentDescriptionDTO extends DTO {
	/**
	 * The name of the component.
	 * 
	 * <p>
	 * This is declared in the {@code name} attribute of the {@code component}
	 * element. This must be the default name if the component description does
	 * not declare a name.
	 */
	public String				name;

	/**
	 * The bundle declaring the component description.
	 */
	public BundleDTO			bundle;

	/**
	 * The component factory name.
	 * 
	 * <p>
	 * This is declared in the {@code factory} attribute of the
	 * {@code component} element. This must be {@code null} if the component
	 * description is not declared as a component factory.
	 */
	public String				factory;

	/**
	 * The service scope.
	 * 
	 * <p>
	 * This is declared in the {@code scope} attribute of the {@code service}
	 * element. This must be {@code null} if the component description does not
	 * declare any service interfaces.
	 */
	public String				scope;

	/**
	 * The fully qualified name of the implementation class.
	 * 
	 * <p>
	 * This is declared in the {@code class} attribute of the
	 * {@code implementation} element.
	 */
	public String				implementationClass;

	/**
	 * The initial enabled state.
	 * 
	 * <p>
	 * This is declared in the {@code enabled} attribute of the
	 * {@code component} element.
	 */
	public boolean				defaultEnabled;

	/**
	 * The immediate state.
	 * 
	 * <p>
	 * This is declared in the {@code immediate} attribute of the
	 * {@code component} element.
	 */
	public boolean				immediate;

	/**
	 * The fully qualified names of the service interfaces.
	 * 
	 * <p>
	 * These are declared in the {@code interface} attribute of the
	 * {@code provide} elements. The array must be empty if the component
	 * description does not declare any service interfaces.
	 */
	public String[]				serviceInterfaces;

	/**
	 * The declared component properties.
	 * 
	 * <p>
	 * These are declared in the {@code property} and {@code properties}
	 * elements.
	 */
	public Map<String, Object>	properties;

	/**
	 * The referenced services.
	 * 
	 * <p>
	 * These are declared in the {@code reference} elements. The array must be
	 * empty if the component description does not declare references to any
	 * services.
	 */
	public ReferenceDTO[]			references;

	/**
	 * The name of the activate method.
	 * 
	 * <p>
	 * This is declared in the {@code activate} attribute of the
	 * {@code component} element. This must be {@code null} if the component
	 * description does not declare an activate method name.
	 */
	public String				activate;

	/**
	 * The name of the deactivate method.
	 * 
	 * <p>
	 * This is declared in the {@code deactivate} attribute of the
	 * {@code component} element. This must be {@code null} if the component
	 * description does not declare a deactivate method name.
	 */
	public String				deactivate;

	/**
	 * The name of the modified method.
	 * 
	 * <p>
	 * This is declared in the {@code modified} attribute of the
	 * {@code component} element. This must be {@code null} if the component
	 * description does not declare a modified method name.
	 */
	public String				modified;

	/**
	 * The configuration policy.
	 * 
	 * <p>
	 * This is declared in the {@code configuration-policy} attribute of the
	 * {@code component} element. This must be the default configuration policy
	 * if the component description does not declare a configuration policy.
	 */
	public String				configurationPolicy;

	/**
	 * The configuration pids.
	 * 
	 * <p>
	 * These are declared in the {@code configuration-pid} attribute of the
	 * {@code component} element. This must contain the default configuration
	 * pid if the component description does not declare a configuration pid.
	 */
	public String[]				configurationPid;
}

Back to the top