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

* Additional event types may be defined in the future. * *

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

* * @return The type of this event. */ public int getType() { return type; } /** * Return the 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; } }