annotate org.eclipse.osgi/osgi/src/org/osgi/framework/ServiceEvent.d @ 105:bbe49769ec18

...
author Frank Benoit <benoit@tionex.de>
date Sun, 08 Nov 2009 12:42:30 +0100
parents 12b890a6392a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/ServiceEvent.java,v 1.15 2007/02/20 00:14:12 hargrave Exp $
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
3 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * Copyright (c) OSGi Alliance (2000, 2007). All Rights Reserved.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
5 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * Licensed under the Apache License, Version 2.0 (the "License");
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 * you may not use this file except in compliance with the License.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * You may obtain a copy of the License at
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 *
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * http://www.apache.org/licenses/LICENSE-2.0
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 *
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 * Unless required by applicable law or agreed to in writing, software
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 * distributed under the License is distributed on an "AS IS" BASIS,
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 * See the License for the specific language governing permissions and
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 * limitations under the License.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
19 // Port to the D programming language:
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
20 // Frank Benoit <benoit@tionex.de>
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 module org.osgi.framework.ServiceEvent;
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
22
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
23 import java.lang.all;
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
25 import org.osgi.framework.ServiceReference; // packageimport
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
26
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import java.util.EventObject;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 * An event from the Framework describing a service lifecycle change.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * <code>ServiceEvent</code> objects are delivered to
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * <code>ServiceListener</code>s and <code>AllServiceListener</code>s when
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * a change occurs in this service's lifecycle. A type code is used to identify
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * the event type for future extendability.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
36 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * OSGi Alliance reserves the right to extend the set of types.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
39 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * @Immutable
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * @see ServiceListener
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * @see AllServiceListener
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * @version $Revision: 1.15 $
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 public class ServiceEvent : EventObject {
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 static final long serialVersionUID = 8792901483909409299L;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * Reference to the service that had a change occur in its lifecycle.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 private final ServiceReference reference;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * Type of service lifecycle change.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 private final int type;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * This service has been registered.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * This event is synchronously delivered <strong>after</strong> the service
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * has been registered with the Framework.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
63 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * The value of <code>REGISTERED</code> is 0x00000001.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
66 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * @see BundleContext#registerService(String[],Object,java.util.Dictionary)
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 public final static int REGISTERED = 0x00000001;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * The properties of a registered service have been modified.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * This event is synchronously delivered <strong>after</strong> the service
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * properties have been modified.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
76 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * The value of <code>MODIFIED</code> is 0x00000002.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
79 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * @see ServiceRegistration#setProperties
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 public final static int MODIFIED = 0x00000002;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * This service is in the process of being unregistered.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * This event is synchronously delivered <strong>before</strong> the
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 * service has completed unregistering.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
89 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * If a bundle is using a service that is <code>UNREGISTERING</code>, the
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * bundle should release its use of the service when it receives this event.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * If the bundle does not release its use of the service when it receives
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 * this event, the Framework will automatically release the bundle's use of
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * the service while completing the service unregistration operation.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
96 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * The value of UNREGISTERING is 0x00000004.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
99 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 * @see ServiceRegistration#unregister
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * @see BundleContext#ungetService
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 public final static int UNREGISTERING = 0x00000004;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 * Creates a new service event object.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
107 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 * @param type The event type.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * @param reference A <code>ServiceReference</code> object to the service
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * that had a lifecycle change.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 public this(int type, ServiceReference reference) {
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
113 super(reference);
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 this.reference = reference;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 this.type = type;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 }
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * Returns a reference to the service that had a change occur in its
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * lifecycle.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * <p>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 * This reference is the source of the event.
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
123 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * @return Reference to the service that had a lifecycle change.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 public ServiceReference getServiceReference() {
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 return reference;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 }
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 /**
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * Returns the type of event. The event type values are:
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 * <ul>
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * <li>{@link #REGISTERED}
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * <li>{@link #MODIFIED}
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 * <li>{@link #UNREGISTERING}
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * </ul>
105
Frank Benoit <benoit@tionex.de>
parents: 86
diff changeset
137 *
86
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 * @return Type of service lifecycle change.
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 */
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 public int getType() {
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 return type;
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 }
12b890a6392a Work on databinding
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 }