package org.apache.tuscany.sca.osgi.remoteserviceadmin; import org.osgi.framework.Bundle; /** * * Provides the event information for a Remote Admin event. * * @Immutable */ public class RemoteServiceAdminEvent { /** * Add an import registration. The Remote Services Admin will call this * method when it imports a service. When this service is registered, the * Remote Service Admin must notify the listener of all existing Import * Registrations. * */ public static final int IMPORT_REGISTRATION = 1; /** * Add an export registration. The Remote Services Admin will call this * method when it exports a service. When this service is registered, the * Remote Service Admin must notify the listener of all existing Export * Registrations. */ public static final int EXPORT_REGISTRATION = 2; /** * Remove an export registration. The Remote Services Admin will call this * method when it removes the export of a service. * */ public static final int EXPORT_UNREGISTRATION = 3; /** * Remove an import registration. The Remote Services Admin will call this * method when it removes the import of a service. * */ public static final int IMPORT_UNREGISTRATION = 4; /** * A fatal importing error occurred. The Import Registration has been * closed. */ public static final int IMPORT_ERROR = 5; /** * A fatal exporting error occurred. The Export Registration has been * closed. */ public static final int EXPORT_ERROR = 6; /** * A problematic situation occurred, the export is still active. */ public static final int EXPORT_WARNING = 7; /** * A problematic situation occurred, the import is still active. */ public static final int IMPORT_WARNING = 8; private final ImportRegistration importRegistration; private final ExportRegistration exportRegistration; private final Throwable exception; private final int type; private final Bundle source; /** * Private constructor. * * @param type The event type * @param source The source bundle, must not be null. * @param importRegistration The importRegistration, can be null. * @param exportRegistration The exportRegistration, can be null. * @param exception Any exceptions encountered, can be null */ RemoteServiceAdminEvent(int type, Bundle source, ImportRegistration importRegistration, ExportRegistration exportRegistration, Throwable exception) { this.type = type; this.source = source; this.importRegistration = importRegistration; this.exportRegistration = exportRegistration; this.exception = exception; } /** * Create a Remote Service Admin Event for an export issue. * * @param type The event type * @param source The source bundle, must not be null. * @param exportRegistration The exportRegistration, can not be null. * @param exception Any exceptions encountered, can be null */ public RemoteServiceAdminEvent(int type, Bundle source, ExportRegistration exportRegistration, Throwable exception) { this(type, source, null, exportRegistration, exception); } /** * Create a Remote Service Admin Event for an import issue. * * @param type The event type * @param source The source bundle, must not be null. * @param importRegistration The importRegistration, can not be null. * @param exception Any exceptions encountered, can be null */ public RemoteServiceAdminEvent(int type, Bundle source, ImportRegistration importRegistration, Throwable exception) { this(type, source, importRegistration, null, exception); } /** * @return the importRegistration or null */ public ImportRegistration getImportRegistration() { return importRegistration; } /** * @return the exportRegistration or null */ public ExportRegistration getExportRegistration() { return exportRegistration; } /** * @return the exception or null */ public Throwable getException() { return exception; } /** * @return the type */ public int getType() { return type; } /** * @return the source */ public Bundle getSource() { return source; } }