package rocks.inspectit.ui.rcp.repository.service.cmr; import rocks.inspectit.shared.cs.cmr.service.IAgentInstrumentationService; import rocks.inspectit.shared.cs.cmr.service.IAlertService; import rocks.inspectit.shared.cs.cmr.service.IBusinessContextManagementService; import rocks.inspectit.shared.cs.cmr.service.ICmrManagementService; import rocks.inspectit.shared.cs.cmr.service.IConfigurationInterfaceService; import rocks.inspectit.shared.cs.cmr.service.IExceptionDataAccessService; import rocks.inspectit.shared.cs.cmr.service.IGlobalDataAccessService; import rocks.inspectit.shared.cs.cmr.service.IHttpTimerDataAccessService; import rocks.inspectit.shared.cs.cmr.service.IInfluxDBService; import rocks.inspectit.shared.cs.cmr.service.IInvocationDataAccessService; import rocks.inspectit.shared.cs.cmr.service.IJmxDataAccessService; import rocks.inspectit.shared.cs.cmr.service.IServerStatusService; import rocks.inspectit.shared.cs.cmr.service.ISpanService; import rocks.inspectit.shared.cs.cmr.service.ISqlDataAccessService; import rocks.inspectit.shared.cs.cmr.service.IStorageService; import rocks.inspectit.shared.cs.cmr.service.ITimerDataAccessService; import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition; /** * Provider of the {@link ICmrService}s via Spring. * * @author Ivan Senic * @author Alfred Krauss * @author Marius Oehler * */ public abstract class CmrServiceProvider { /** * Returns properly initialized {@link BufferService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link BufferService}. */ public ICmrManagementService getCmrManagementService(CmrRepositoryDefinition cmrRepositoryDefinition) { ICmrManagementService cmrManagementService = getCmrManagementService(); ((ICmrService) cmrManagementService).initService(cmrRepositoryDefinition); return cmrManagementService; } /** * Returns Spring created {@link BufferService}. * * @return Returns Spring created {@link BufferService}. */ protected abstract ICmrManagementService getCmrManagementService(); /** * Returns properly initialized {@link ExceptionDataAccessService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link ExceptionDataAccessService}. */ public IExceptionDataAccessService getExceptionDataAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { IExceptionDataAccessService exceptionDataAccessService = getExceptionDataAccessService(); ((ICmrService) exceptionDataAccessService).initService(cmrRepositoryDefinition); return exceptionDataAccessService; } /** * Returns Spring created {@link ExceptionDataAccessService}. * * @return Returns Spring created {@link ExceptionDataAccessService}. */ protected abstract IExceptionDataAccessService getExceptionDataAccessService(); /** * Returns properly initialized {@link GlobalDataAccessService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link GlobalDataAccessService}. */ public IGlobalDataAccessService getGlobalDataAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { IGlobalDataAccessService globalDataAccessService = getGlobalDataAccessService(); ((ICmrService) globalDataAccessService).initService(cmrRepositoryDefinition); return globalDataAccessService; } /** * Returns Spring created {@link GlobalDataAccessService}. * * @return Returns Spring created {@link GlobalDataAccessService}. */ protected abstract IGlobalDataAccessService getGlobalDataAccessService(); /** * Returns properly initialized {@link JmxDataAccessService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link JmxDataAccessService}. */ public IJmxDataAccessService getJmxDataAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { IJmxDataAccessService jmxDataAccessService = getJmxDataAccessService(); ((ICmrService) jmxDataAccessService).initService(cmrRepositoryDefinition); return jmxDataAccessService; } /** * Returns Spring created {@link JmxDataAccessService}. * * @return Returns Spring created {@link JmxDataAccessService}. */ protected abstract IJmxDataAccessService getJmxDataAccessService(); /** * Returns properly initialized {@link InvocationDataAccessService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link InvocationDataAccessService}. */ public IInvocationDataAccessService getInvocationDataAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { IInvocationDataAccessService invocationDataAccessService = getInvocationDataAccessService(); ((ICmrService) invocationDataAccessService).initService(cmrRepositoryDefinition); return invocationDataAccessService; } /** * Returns Spring created {@link InvocationDataAccessService}. * * @return Returns Spring created {@link InvocationDataAccessService}. */ protected abstract IInvocationDataAccessService getInvocationDataAccessService(); /** * Returns properly initialized {@link ServerStatusService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link ServerStatusService}. */ public IServerStatusService getServerStatusService(CmrRepositoryDefinition cmrRepositoryDefinition) { IServerStatusService serverStatusService = getServerStatusService(); ((ICmrService) serverStatusService).initService(cmrRepositoryDefinition); return serverStatusService; } /** * Returns Spring created {@link ServerStatusService}. * * @return Returns Spring created {@link ServerStatusService}. */ protected abstract IServerStatusService getServerStatusService(); /** * Returns properly initialized {@link SqlDataAccessService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link SqlDataAccessService}. */ public ISqlDataAccessService getSqlDataAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { ISqlDataAccessService sqlDataAccessService = getSqlDataAccessService(); ((ICmrService) sqlDataAccessService).initService(cmrRepositoryDefinition); return sqlDataAccessService; } /** * Returns Spring created {@link SqlDataAccessService}. * * @return Returns Spring created {@link SqlDataAccessService}. */ protected abstract ISqlDataAccessService getSqlDataAccessService(); /** * Returns properly initialized {@link TimerDataAccessService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link TimerDataAccessService}. */ public ITimerDataAccessService getTimerDataAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { ITimerDataAccessService timerDataAccessService = getTimerDataAccessService(); ((ICmrService) timerDataAccessService).initService(cmrRepositoryDefinition); return timerDataAccessService; } /** * Returns Spring created {@link TimerDataAccessService}. * * @return Returns Spring created {@link TimerDataAccessService}. */ protected abstract ITimerDataAccessService getTimerDataAccessService(); /** * Returns properly initialized {@link TimerDataAccessService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link TimerDataAccessService}. */ public IHttpTimerDataAccessService getHttpTimerDataAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { IHttpTimerDataAccessService httpTimerDataAccessService = getHttpTimerDataAccessService(); ((ICmrService) httpTimerDataAccessService).initService(cmrRepositoryDefinition); return httpTimerDataAccessService; } /** * Returns Spring created {@link TimerDataAccessService}. * * @return Returns Spring created {@link TimerDataAccessService}. */ protected abstract IHttpTimerDataAccessService getHttpTimerDataAccessService(); /** * Returns properly initialized {@link IStorageService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link IStorageService}. */ public IStorageService getStorageService(CmrRepositoryDefinition cmrRepositoryDefinition) { IStorageService storageService = getStorageService(); ((ICmrService) storageService).initService(cmrRepositoryDefinition); return storageService; } /** * Returns Spring created {@link IStorageService}. * * @return Returns Spring created {@link IStorageService}. */ protected abstract IStorageService getStorageService(); /** * Returns properly initialized {@link IConfigurationInterfaceService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link IConfigurationInterfaceService}. */ public IConfigurationInterfaceService getConfigurationInterfaceService(CmrRepositoryDefinition cmrRepositoryDefinition) { IConfigurationInterfaceService configurationInterfaceService = getConfigurationInterfaceService(); ((ICmrService) configurationInterfaceService).initService(cmrRepositoryDefinition); return configurationInterfaceService; } /** * Returns Spring created {@link IConfigurationInterfaceService}. * * @return Returns Spring created {@link IConfigurationInterfaceService}. */ protected abstract IConfigurationInterfaceService getConfigurationInterfaceService(); /** * Returns properly initialized {@link IBusinessContextManagement}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link IBusinessContextManagementService}. */ public IBusinessContextManagementService getBusinessContextManagementService(CmrRepositoryDefinition cmrRepositoryDefinition) { IBusinessContextManagementService businessCtxMgmtService = getBusinessContextManagementService(); ((ICmrService) businessCtxMgmtService).initService(cmrRepositoryDefinition); return businessCtxMgmtService; } /** * Returns Spring created {@link BusinessContextManagementService}. * * @return Returns Spring created {@link BusinessContextManagementService}. */ protected abstract IBusinessContextManagementService getBusinessContextManagementService(); /** * Returns properly initialized {@link IInfluxDBService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link IInfluxDBService}. */ public IInfluxDBService getInfluxDBService(CmrRepositoryDefinition cmrRepositoryDefinition) { IInfluxDBService influxDBService = getInfluxDBService(); ((ICmrService) influxDBService).initService(cmrRepositoryDefinition); return influxDBService; } /** * Returns Spring created {@link IInfluxDBService}. * * @return Returns Spring created {@link IInfluxDBService}. */ protected abstract IInfluxDBService getInfluxDBService(); /** * Returns properly initialized {@link IAlertService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link IAlertService}. */ public IAlertService getAlertAccessService(CmrRepositoryDefinition cmrRepositoryDefinition) { IAlertService alertService = getAlertAccessService(); ((ICmrService) alertService).initService(cmrRepositoryDefinition); return alertService; } /** * Returns Spring created {@link IAlertService}. * * @return Returns Spring created {@link IAlertService}. */ protected abstract IAlertService getAlertAccessService(); /** * Returns properly initialized {@link IAgentInstrumentationService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link IAgentInstrumentationService}. */ public IAgentInstrumentationService getAgentInstrumentationService(CmrRepositoryDefinition cmrRepositoryDefinition) { IAgentInstrumentationService agentInstrumentationService = getAgentInstrumentationService(); ((ICmrService) agentInstrumentationService).initService(cmrRepositoryDefinition); return agentInstrumentationService; } /** * Returns Spring created {@link IAgentInstrumentationService}. * * @return Returns Spring created {@link IAgentInstrumentationService}. */ protected abstract IAgentInstrumentationService getAgentInstrumentationService(); /** * Returns properly initialized {@link ISpanService}. * * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to bound service to. * @return Returns {@link ISpanService}. */ public ISpanService getSpanService(CmrRepositoryDefinition cmrRepositoryDefinition) { ISpanService spanService = getSpanService(); ((ICmrService) spanService).initService(cmrRepositoryDefinition); return spanService; } /** * Returns Spring created {@link ISpanService}. * * @return Returns Spring created {@link ISpanService}. */ protected abstract ISpanService getSpanService(); }