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
|
/*
* $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/ServiceEvent.java,v 1.15 2007/02/20 00:14:12 hargrave Exp $
*
* Copyright (c) OSGi Alliance (2000, 2007). 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.framework;
import java.util.EventObject;
/**
* An event from the Framework describing a service lifecycle change.
* <p>
* <code>ServiceEvent</code> objects are delivered to
* <code>ServiceListener</code>s and <code>AllServiceListener</code>s when
* a change occurs in this service's lifecycle. A type code is used to identify
* the event type for future extendability.
*
* <p>
* OSGi Alliance reserves the right to extend the set of types.
*
* @Immutable
* @see ServiceListener
* @see AllServiceListener
* @version $Revision: 1.15 $
*/
public class ServiceEvent extends EventObject {
static final long serialVersionUID = 8792901483909409299L;
/**
* Reference to the service that had a change occur in its lifecycle.
*/
private final ServiceReference reference;
/**
* Type of service lifecycle change.
*/
private final int type;
/**
* This service has been registered.
* <p>
* This event is synchronously delivered <strong>after</strong> the service
* has been registered with the Framework.
*
* <p>
* The value of <code>REGISTERED</code> is 0x00000001.
*
* @see BundleContext#registerService(String[],Object,java.util.Dictionary)
*/
public final static int REGISTERED = 0x00000001;
/**
* The properties of a registered service have been modified.
* <p>
* This event is synchronously delivered <strong>after</strong> the service
* properties have been modified.
*
* <p>
* The value of <code>MODIFIED</code> is 0x00000002.
*
* @see ServiceRegistration#setProperties
*/
public final static int MODIFIED = 0x00000002;
/**
* This service is in the process of being unregistered.
* <p>
* This event is synchronously delivered <strong>before</strong> the
* service has completed unregistering.
*
* <p>
* If a bundle is using a service that is <code>UNREGISTERING</code>, the
* bundle should release its use of the service when it receives this event.
* If the bundle does not release its use of the service when it receives
* this event, the Framework will automatically release the bundle's use of
* the service while completing the service unregistration operation.
*
* <p>
* The value of UNREGISTERING is 0x00000004.
*
* @see ServiceRegistration#unregister
* @see BundleContext#ungetService
*/
public final static int UNREGISTERING = 0x00000004;
/**
* Creates a new service event object.
*
* @param type The event type.
* @param reference A <code>ServiceReference</code> object to the service
* that had a lifecycle change.
*/
public ServiceEvent(int type, ServiceReference reference) {
super(reference);
this.reference = reference;
this.type = type;
}
/**
* Returns a reference to the service that had a change occur in its
* lifecycle.
* <p>
* This reference is the source of the event.
*
* @return Reference to the service that had a lifecycle change.
*/
public ServiceReference getServiceReference() {
return reference;
}
/**
* Returns the type of event. The event type values are:
* <ul>
* <li>{@link #REGISTERED}
* <li>{@link #MODIFIED}
* <li>{@link #UNREGISTERING}
* </ul>
*
* @return Type of service lifecycle change.
*/
public int getType() {
return type;
}
}
|