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

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

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*
 * Copyright (c) OSGi Alliance (2000, 2013). 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.
 * 

* {@code ServiceEvent} objects are delivered to {@code ServiceListener}s and * {@code AllServiceListener}s 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 * @author $Id: b27a941cb68e6416825b1b717090a2eb098733f3 $ */ 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(Dictionary) */ 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 {@code 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(ServiceReference) */ 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-{@code 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(Dictionary) * @since 1.5 */ public final static int MODIFIED_ENDMATCH = 0x00000008; /** * Creates a new service event object. * * @param type The event type. * @param reference A {@code 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