/* * $Header: /cvshome/build/org.osgi.service.cm/src/org/osgi/service/cm/ConfigurationEvent.java,v 1.9 2006/06/16 16:31:28 hargrave Exp $ * * Copyright (c) OSGi Alliance (2004, 2006). 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.service.cm; import org.osgi.framework.ServiceReference; /** * A Configuration Event. * *
* ConfigurationEvent objects are delivered to all registered
* ConfigurationListener service objects. ConfigurationEvents
* must be asynchronously delivered in chronological order with respect to each
* listener.
*
*
* A type code is used to identify the type of event. The following event types * are defined: *
* Security Considerations. ConfigurationEvent objects do not
* provide Configuration objects, so no sensitive configuration
* information is available from the event. If the listener wants to locate the
* Configuration object for the specified pid, it must use
* ConfigurationAdmin.
*
* @see ConfigurationListener
*
* @version $Revision: 1.9 $
* @since 1.2
*/
public class ConfigurationEvent {
/**
* A Configuration has been updated.
*
*
* This ConfigurationEvent type that indicates that a
* Configuration object has been updated with new properties.
*
* An event is fired when a call to Configuration.update
* successfully changes a configuration.
*
*
* The value of CM_UPDATED is 1.
*/
public static final int CM_UPDATED = 1;
/**
* A Configuration has been deleted.
*
*
* This ConfigurationEvent type that indicates that a
* Configuration object has been deleted.
*
* An event is fired when a call to Configuration.delete
* successfully deletes a configuration.
*
*
* The value of CM_DELETED is 2.
*/
public static final int CM_DELETED = 2;
/**
* Type of this event.
*
* @see #getType
*/
private final int type;
/**
* The factory pid associated with this event.
*/
private final String factoryPid;
/**
* The pid associated with this event.
*/
private final String pid;
/**
* The ConfigurationAdmin service which created this event.
*/
private final ServiceReference reference;
/**
* Constructs a ConfigurationEvent object from the given
* ServiceReference object, event type, and pids.
*
* @param reference The ServiceReference object of the
* Configuration Admin service that created this event.
* @param type The event type. See {@link #getType}.
* @param factoryPid The factory pid of the associated configuration if the
* target of the configuration is a ManagedServiceFactory. Otherwise
* null if the target of the configuration is a
* ManagedService.
* @param pid The pid of the associated configuration.
*/
public ConfigurationEvent(ServiceReference reference, int type,
String factoryPid, String pid) {
this.reference = reference;
this.type = type;
this.factoryPid = factoryPid;
this.pid = pid;
}
/**
* Returns the factory pid of the associated configuration.
*
* @return Returns the factory pid of the associated configuration if the
* target of the configuration is a ManagedServiceFactory. Otherwise
* null if the target of the configuration is a
* ManagedService.
*/
public String getFactoryPid() {
return factoryPid;
}
/**
* Returns the pid of the associated configuration.
*
* @return Returns the pid of the associated configuration.
*/
public String getPid() {
return pid;
}
/**
* Return the type of this event.
*
* The type values are: *
ServiceReference object of the Configuration
* Admin service that created this event.
*
* @return The ServiceReference object for the Configuration
* Admin service that created this event.
*/
public ServiceReference getReference() {
return reference;
}
}