package configuration;
/**
 * An interface for representing events related to ComponentConfigurators.
 * @author  Fabio Kon
 * @version 0.2
 * @see     ComponentConfigurator
*/
public interface ComponentEvent {
/** unknown event String.
 */
    static final String UNKNOWN = "UNKNOWN";

/** component started.
 */
    static final int STARTED     = 1;

/** component finished.
 */
    static final int FINISHED     = 2;

/** component shutting down.
 */
    static final int SHUTDOWN     = 4;

/** component reconfigured.
 */
    static final int RECONFIGURED = 8;

/** component replaced.
 */
    static final int REPLACED     = 16;

/** component migrated.
 */
    static final int MIGRATED     = 32;

/** component deleted.
 */
    static final int DELETED     = 64;

/** component failure.
 */
    static final int FAILED      = 128;

/** An application-specific event type. The toString method can return an
 *  application-specific description of the event. Alternatively, the application
 *  can define more event type codes.  
*/
    static final int APP_SPECIFIC = 256;

/**
 * Converts the event into a String.
 * @return a string describing the event.
 */
    String toString();

/**
 * Accessor for the event type.
 * @return the type of the event.
 */
    int getType();

}
