All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.osgi.framework.ServiceEvent Maven / Gradle / Ivy

There is a newer version: 7.0.5
Show newest version
/*
 * Copyright (c) OSGi Alliance (2000, 2009). 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.Dictionary;
import java.util.EventObject;

/**
 * An event from the Framework describing a service lifecycle change.
 * 

* ServiceEvent objects are delivered to * ServiceListeners and AllServiceListeners when a * change occurs in this service's lifecycle. A type code is used to identify * the event type for future extendability. * *

* OSGi Alliance reserves the right to extend the set of types. * * @Immutable * @see ServiceListener * @see AllServiceListener * @version $Revision: 6542 $ */ 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. *

* This event is synchronously delivered after the service * has been registered with the Framework. * * @see BundleContext#registerService(String[],Object,Dictionary) */ public final static int REGISTERED = 0x00000001; /** * The properties of a registered service have been modified. *

* This event is synchronously delivered after the service * properties have been modified. * * @see ServiceRegistration#setProperties */ public final static int MODIFIED = 0x00000002; /** * This service is in the process of being unregistered. *

* This event is synchronously delivered before the service * has completed unregistering. * *

* If a bundle is using a service that is UNREGISTERING, 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. * * @see ServiceRegistration#unregister * @see BundleContext#ungetService */ public final static int UNREGISTERING = 0x00000004; /** * The properties of a registered service have been modified and the new * properties no longer match the listener's filter. *

* This event is synchronously delivered after the service * properties have been modified. This event is only delivered to listeners * which were added with a non-null filter where the filter * matched the service properties prior to the modification but the filter * does not match the modified service properties. * * @see ServiceRegistration#setProperties * @since 1.5 */ public final static int MODIFIED_ENDMATCH = 0x00000008; /** * Creates a new service event object. * * @param type The event type. * @param reference A ServiceReference 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. *

* 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: *

    *
  • {@link #REGISTERED}
  • *
  • {@link #MODIFIED}
  • *
  • {@link #MODIFIED_ENDMATCH}
  • *
  • {@link #UNREGISTERING}
  • *
* * @return Type of service lifecycle change. */ public int getType() { return type; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy