content: /*
   * Copyright (c) OSGi Alliance (2008, 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.service.blueprint.container;
  
  /**
   * Event property names used in Event Admin events published by a Blueprint
   * Container.
   * 
   * <p>
   * Each type of event is sent to a different topic:
   * 
   * <p>
   * <code>org/osgi/service/blueprint/container/</code><em>&lt;event-type&gt;</em>
   * 
   * <p>
   * where <em>&lt;event-type&gt;</em> can have the values
   * {@link BlueprintEvent#CREATING CREATING}, {@link BlueprintEvent#CREATED
   * CREATED}, {@link BlueprintEvent#DESTROYING DESTROYING},
   * {@link BlueprintEvent#DESTROYED DESTROYED}, {@link BlueprintEvent#FAILURE
   * FAILURE}, {@link BlueprintEvent#GRACE_PERIOD GRACE_PERIOD}, or
   * {@link BlueprintEvent#WAITING WAITING}.
   * 
   * <p>
   * Such events have the following properties:
   * <ul>
   * <li>{@link #TYPE type}</li>
   * <li>{@link #EVENT event}</li>
   * <li>{@link #TIMESTAMP timestamp}</li>
   * <li>{@link #BUNDLE bundle}</li>
   * <li>{@link #BUNDLE_SYMBOLICNAME bundle.symbolicName}</li>
   * <li>{@link #BUNDLE_ID bundle.id}</li>
   * <li>{@link #BUNDLE_VERSION bundle.version}</li>
   * <li>{@link #EXTENDER_BUNDLE_SYMBOLICNAME extender.bundle.symbolicName}</li>
   * <li>{@link #EXTENDER_BUNDLE_ID extender.bundle.id}</li>
   * <li>{@link #EXTENDER_BUNDLE_VERSION extender.bundle.version}</li>
   * <li>{@link #DEPENDENCIES dependencies}</li>
   * <li>{@link #CAUSE cause}</li>
   * </ul>
   * 
   * @Immutable
   * @version $Revision$
   */
  public class EventConstants {
  	private EventConstants() {
  		// non-instantiable class
  	}
  
  	/**
  	 * The type of the event that has been issued. This property is of type
  	 * <code>Integer</code> and can take one of the values defined in
  	 * {@link BlueprintEvent}.
  	 */
  	public static final String TYPE = "type";
  
  	/**
  	 * The <code>BlueprintEvent</code> object that caused this event. This
  	 * property is of type {@link BlueprintEvent}.
  	 */
  	public static final String EVENT = "event";
  
  	/**
  	 * The time the event was created. This property is of type
  	 * <code>Long</code>.
  	 */
  	public static final String TIMESTAMP = "timestamp";
  
  	/**
  	 * The Blueprint bundle associated with this event. This property is of type
  	 * <code>Bundle</code>.
  	 */
  	public static final String BUNDLE = "bundle";
  
  	/**
  	 * The bundle id of the Blueprint bundle associated with this event. This
  	 * property is of type <code>Long</code>.
  	 */
  	public static final String BUNDLE_ID = "bundle.id";
  
  	/**
  	 * The bundle symbolic name of the Blueprint bundle associated with this
  	 * event. This property is of type <code>String</code>.
  	 */
  	public static final String BUNDLE_SYMBOLICNAME = "bundle.symbolicName";
  
  	/**
  	 * The bundle version of the Blueprint bundle associated with this event.
  	 * This property is of type <code>Version</code>.
  	 */
  	public static final String BUNDLE_VERSION = "bundle.version";
  
  	/**
  	 * The Blueprint extender bundle that is generating this event. This
  	 * property is of type <code>Bundle</code>.
  	 */
  	public static final String EXTENDER_BUNDLE = "extender.bundle";
  
  	/**
  	 * The bundle id of the Blueprint extender bundle that is generating this
  	 * event. This property is of type <code>Long</code>.
  	 */
  	public static final String EXTENDER_BUNDLE_ID = "extender.bundle.id";
  
  	/**
  	 * The bundle symbolic of the Blueprint extender bundle that is generating
  	 * this event. This property is of type <code>String</code>.
  	 */
  	public static final String EXTENDER_BUNDLE_SYMBOLICNAME = "extender.bundle.symbolicName";
  
  	/**
  	 * The bundle version of the Blueprint extender bundle that is generating
  	 * this event. This property is of type <code>Version</code>.
  	 */
  	public static final String EXTENDER_BUNDLE_VERSION = "extender.bundle.version";
  
  	/**
  	 * The filters identifying the missing dependencies that caused this event
  	 * for a {@link BlueprintEvent#FAILURE FAILURE},
  	 * {@link BlueprintEvent#GRACE_PERIOD GRACE_PERIOD}, or
  	 * {@link BlueprintEvent#WAITING WAITING} event. This property type is an
  	 * array of <code>String</code>.
  	 */
  	public static final String DEPENDENCIES = "dependencies";
  
  	/**
  	 * The cause for a {@link BlueprintEvent#FAILURE FAILURE} event. This
  	 * property is of type <code>Throwable</code>.
  	 */
  	public static final String CAUSE = "cause";
  
  	/**
  	 * Topic prefix for all events issued by the Blueprint Container
  	 */
  	public static final String TOPIC_BLUEPRINT_EVENTS = "org/osgi/service/blueprint/container";
  
  	/**
  	 * Topic for Blueprint Container CREATING events
  	 */
  	public static final String TOPIC_CREATING = TOPIC_BLUEPRINT_EVENTS
  			+ "/CREATING";
  
  	/**
  	 * Topic for Blueprint Container CREATED events
  	 */
  	public static final String TOPIC_CREATED = TOPIC_BLUEPRINT_EVENTS
  			+ "/CREATED";
  
  	/**
  	 * Topic for Blueprint Container DESTROYING events
  	 */
  	public static final String TOPIC_DESTROYING = TOPIC_BLUEPRINT_EVENTS
  			+ "/DESTROYING";
  
  	/**
  	 * Topic for Blueprint Container DESTROYED events
  	 */
  	public static final String TOPIC_DESTROYED = TOPIC_BLUEPRINT_EVENTS
  			+ "/DESTROYED";
  
  	/**
  	 * Topic for Blueprint Container FAILURE events
  	 */
  	public static final String TOPIC_FAILURE = TOPIC_BLUEPRINT_EVENTS
  			+ "/FAILURE";
  
  	/**
  	 * Topic for Blueprint Container GRACE_PERIOD events
  	 */
  	public static final String TOPIC_GRACE_PERIOD = TOPIC_BLUEPRINT_EVENTS
  			+ "/GRACE_PERIOD";
  
  	/**
  	 * Topic for Blueprint Container WAITING events
  	 */
  	public static final String TOPIC_WAITING = TOPIC_BLUEPRINT_EVENTS
  			+ "/WAITING";
  }
  