package rocks.inspectit.shared.cs.cmr.service;
import java.util.Collection;
import rocks.inspectit.shared.all.cmr.service.ServiceExporterType;
import rocks.inspectit.shared.all.cmr.service.ServiceInterface;
import rocks.inspectit.shared.all.communication.data.cmr.ApplicationData;
import rocks.inspectit.shared.all.communication.data.cmr.BusinessTransactionData;
import rocks.inspectit.shared.cs.ci.business.impl.BusinessTransactionDefinition;
/**
* Service interface which defines the methods to manage the business context (i.e. applications,
* business transactions, SLAs, etc.) of invocation sequences.
*
* @author Alexander Wert
*
*/
@ServiceInterface(exporter = ServiceExporterType.HTTP)
public interface IBusinessContextManagementService {
/**
* Returns a collection of all recognized applications.
*
* @return a collection of all recognized applications.
*/
Collection<ApplicationData> getApplications();
/**
* Returns a collection of all recognized business transactions.
*
* @return a collection of all recognized business transactions.
*/
Collection<BusinessTransactionData> getBusinessTransactions();
/**
* Returns a collection of all recognized business transactions for the given application
* identifier.
*
* @param applicationId
* application identifier to retrieve the business transactions for.
* @return a collection of all recognized business transactions.
*/
Collection<BusinessTransactionData> getBusinessTransactions(int applicationId);
/**
* Retrieves the {@link IApplicationDefinition} for the given identifier.
*
* @param id
* unique identifier of the application definition
* @return Returns the application definition for the given id or null if no applicaiton
* definition for the id exists.
*/
ApplicationData getApplicationForId(int id);
/**
* Retrieves the {@link BusinessTransactionDefinition} for the given application and business
* transaction identifiers.
*
* @param appId
* unique identifier of the application definition
* @param businessTxId
* unique identifier of the business transaction definition
* @return Returns the business transaction definition or null if no business transaction
* definition for the given pair of identifiers exists.
*/
BusinessTransactionData getBusinessTransactionForId(int appId, int businessTxId);
}