package rocks.inspectit.ui.rcp.repository;
import rocks.inspectit.shared.all.cmr.model.PlatformIdent;
import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition.OnlineStatus;
/**
* Extended {@link RepositoryChangeListener} only for events on the {@link CmrRepositoryDefinition}
* s.
*
* @author Ivan Senic
*
*/
public interface CmrRepositoryChangeListener {
/**
* If the online status of the repository has been changed.
*
* @param repositoryDefinition
* {@link CmrRepositoryDefinition}.
* @param oldStatus
* Old status.
* @param newStatus
* New status.
*/
void repositoryOnlineStatusUpdated(CmrRepositoryDefinition repositoryDefinition, OnlineStatus oldStatus, OnlineStatus newStatus);
/**
* If a repository has been added.
*
* @param cmrRepositoryDefinition
* the repository definition.
*/
void repositoryAdded(CmrRepositoryDefinition cmrRepositoryDefinition);
/**
* If a repository has been removed.
*
* @param cmrRepositoryDefinition
* the repository definition.
*/
void repositoryRemoved(CmrRepositoryDefinition cmrRepositoryDefinition);
/**
* Informs the listener that the repository data like name or description have been updated.
*
* @param cmrRepositoryDefinition
* {@link CmrRepositoryDefinition} that was updated.
*/
void repositoryDataUpdated(CmrRepositoryDefinition cmrRepositoryDefinition);
/**
* Informs the listener that the provided agent on the repository has been deleted.
*
* @param cmrRepositoryDefinition
* the repository definition.
* @param agent
* Agent that was deleted.
*/
void repositoryAgentDeleted(CmrRepositoryDefinition cmrRepositoryDefinition, PlatformIdent agent);
}