Mercurial > projects > dwt2
comparison org.eclipse.osgi/osgi/src/org/osgi/util/tracker/ServiceTrackerCustomizer.d @ 105:bbe49769ec18
...
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 08 Nov 2009 12:42:30 +0100 |
parents | 12b890a6392a |
children |
comparison
equal
deleted
inserted
replaced
104:88652073d1c2 | 105:bbe49769ec18 |
---|---|
1 /* | 1 /* |
2 * $Header: /cvshome/build/org.osgi.util.tracker/src/org/osgi/util/tracker/ServiceTrackerCustomizer.java,v 1.13 2007/02/19 19:04:33 hargrave Exp $ | 2 * $Header: /cvshome/build/org.osgi.util.tracker/src/org/osgi/util/tracker/ServiceTrackerCustomizer.java,v 1.13 2007/02/19 19:04:33 hargrave Exp $ |
3 * | 3 * |
4 * Copyright (c) OSGi Alliance (2000, 2007). All Rights Reserved. | 4 * Copyright (c) OSGi Alliance (2000, 2007). All Rights Reserved. |
5 * | 5 * |
6 * Licensed under the Apache License, Version 2.0 (the "License"); | 6 * Licensed under the Apache License, Version 2.0 (the "License"); |
7 * you may not use this file except in compliance with the License. | 7 * you may not use this file except in compliance with the License. |
8 * You may obtain a copy of the License at | 8 * You may obtain a copy of the License at |
9 * | 9 * |
10 * http://www.apache.org/licenses/LICENSE-2.0 | 10 * http://www.apache.org/licenses/LICENSE-2.0 |
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
15 * See the License for the specific language governing permissions and | 15 * See the License for the specific language governing permissions and |
16 * limitations under the License. | 16 * limitations under the License. |
17 */ | 17 */ |
18 | 18 |
19 // Port to the D programming language: | |
20 // Frank Benoit <benoit@tionex.de> | |
19 module org.osgi.util.tracker.ServiceTrackerCustomizer; | 21 module org.osgi.util.tracker.ServiceTrackerCustomizer; |
20 | 22 |
21 import java.lang.all; | 23 import java.lang.all; |
24 | |
25 | |
22 import org.osgi.framework.ServiceReference; | 26 import org.osgi.framework.ServiceReference; |
23 | 27 |
24 /** | 28 /** |
25 * The <code>ServiceTrackerCustomizer</code> interface allows a | 29 * The <code>ServiceTrackerCustomizer</code> interface allows a |
26 * <code>ServiceTracker</code> object to customize the service objects that | 30 * <code>ServiceTracker</code> object to customize the service objects that |
28 * when a service is being added to the <code>ServiceTracker</code> object. | 32 * when a service is being added to the <code>ServiceTracker</code> object. |
29 * The <code>ServiceTrackerCustomizer</code> can then return an object for the | 33 * The <code>ServiceTrackerCustomizer</code> can then return an object for the |
30 * tracked service. The <code>ServiceTrackerCustomizer</code> object is also | 34 * tracked service. The <code>ServiceTrackerCustomizer</code> object is also |
31 * called when a tracked service is modified or has been removed from the | 35 * called when a tracked service is modified or has been removed from the |
32 * <code>ServiceTracker</code> object. | 36 * <code>ServiceTracker</code> object. |
33 * | 37 * |
34 * <p> | 38 * <p> |
35 * The methods in this interface may be called as the result of a | 39 * The methods in this interface may be called as the result of a |
36 * <code>ServiceEvent</code> being received by a <code>ServiceTracker</code> | 40 * <code>ServiceEvent</code> being received by a <code>ServiceTracker</code> |
37 * object. Since <code>ServiceEvent</code> s are synchronously delivered by | 41 * object. Since <code>ServiceEvent</code> s are synchronously delivered by |
38 * the Framework, it is highly recommended that implementations of these methods | 42 * the Framework, it is highly recommended that implementations of these methods |
39 * do not register (<code>BundleContext.registerService</code>), modify ( | 43 * do not register (<code>BundleContext.registerService</code>), modify ( |
40 * <code>ServiceRegistration.setProperties</code>) or unregister ( | 44 * <code>ServiceRegistration.setProperties</code>) or unregister ( |
41 * <code>ServiceRegistration.unregister</code>) a service while being | 45 * <code>ServiceRegistration.unregister</code>) a service while being |
42 * synchronized on any object. | 46 * synchronized on any object. |
43 * | 47 * |
44 * <p> | 48 * <p> |
45 * The <code>ServiceTracker</code> class is thread-safe. It does not call a | 49 * The <code>ServiceTracker</code> class is thread-safe. It does not call a |
46 * <code>ServiceTrackerCustomizer</code> object while holding any locks. | 50 * <code>ServiceTrackerCustomizer</code> object while holding any locks. |
47 * <code>ServiceTrackerCustomizer</code> implementations must also be | 51 * <code>ServiceTrackerCustomizer</code> implementations must also be |
48 * thread-safe. | 52 * thread-safe. |
49 * | 53 * |
50 * @ThreadSafe | 54 * @ThreadSafe |
51 * @version $Revision: 1.13 $ | 55 * @version $Revision: 1.13 $ |
52 */ | 56 */ |
53 public interface ServiceTrackerCustomizer { | 57 public interface ServiceTrackerCustomizer { |
54 /** | 58 /** |
55 * A service is being added to the <code>ServiceTracker</code> object. | 59 * A service is being added to the <code>ServiceTracker</code> object. |
56 * | 60 * |
57 * <p> | 61 * <p> |
58 * This method is called before a service which matched the search | 62 * This method is called before a service which matched the search |
59 * parameters of the <code>ServiceTracker</code> object is added to it. | 63 * parameters of the <code>ServiceTracker</code> object is added to it. |
60 * This method should return the service object to be tracked for this | 64 * This method should return the service object to be tracked for this |
61 * <code>ServiceReference</code> object. The returned service object is | 65 * <code>ServiceReference</code> object. The returned service object is |
62 * stored in the <code>ServiceTracker</code> object and is available from | 66 * stored in the <code>ServiceTracker</code> object and is available from |
63 * the <code>getService</code> and <code>getServices</code> methods. | 67 * the <code>getService</code> and <code>getServices</code> methods. |
64 * | 68 * |
65 * @param reference Reference to service being added to the | 69 * @param reference Reference to service being added to the |
66 * <code>ServiceTracker</code> object. | 70 * <code>ServiceTracker</code> object. |
67 * @return The service object to be tracked for the | 71 * @return The service object to be tracked for the |
68 * <code>ServiceReference</code> object or <code>null</code> if | 72 * <code>ServiceReference</code> object or <code>null</code> if |
69 * the <code>ServiceReference</code> object should not be tracked. | 73 * the <code>ServiceReference</code> object should not be tracked. |
71 public Object addingService(ServiceReference reference); | 75 public Object addingService(ServiceReference reference); |
72 | 76 |
73 /** | 77 /** |
74 * A service tracked by the <code>ServiceTracker</code> object has been | 78 * A service tracked by the <code>ServiceTracker</code> object has been |
75 * modified. | 79 * modified. |
76 * | 80 * |
77 * <p> | 81 * <p> |
78 * This method is called when a service being tracked by the | 82 * This method is called when a service being tracked by the |
79 * <code>ServiceTracker</code> object has had it properties modified. | 83 * <code>ServiceTracker</code> object has had it properties modified. |
80 * | 84 * |
81 * @param reference Reference to service that has been modified. | 85 * @param reference Reference to service that has been modified. |
82 * @param service The service object for the modified service. | 86 * @param service The service object for the modified service. |
83 */ | 87 */ |
84 public void modifiedService(ServiceReference reference, Object service); | 88 public void modifiedService(ServiceReference reference, Object service); |
85 | 89 |
86 /** | 90 /** |
87 * A service tracked by the <code>ServiceTracker</code> object has been | 91 * A service tracked by the <code>ServiceTracker</code> object has been |
88 * removed. | 92 * removed. |
89 * | 93 * |
90 * <p> | 94 * <p> |
91 * This method is called after a service is no longer being tracked by the | 95 * This method is called after a service is no longer being tracked by the |
92 * <code>ServiceTracker</code> object. | 96 * <code>ServiceTracker</code> object. |
93 * | 97 * |
94 * @param reference Reference to service that has been removed. | 98 * @param reference Reference to service that has been removed. |
95 * @param service The service object for the removed service. | 99 * @param service The service object for the removed service. |
96 */ | 100 */ |
97 public void removedService(ServiceReference reference, Object service); | 101 public void removedService(ServiceReference reference, Object service); |
98 } | 102 } |