package com.megatim.fdxconsultation.core.impl.supervision; import com.fdx.messaging.common.StandaloneServerState; import com.megatim.fdxconsultation.core.ifaces.supervision.AgentConfigurationEntityManager; import com.megatim.fdxconsultation.core.ifaces.supervision.StandaloneServerStateEntityManager; import com.megatim.fdxconsultation.dao.ifaces.supervision.StandaloneServerStateEntityDAO; import com.megatim.fdxconsultation.model.mappers.MapStructMapper; import com.megatim.fdxconsultation.model.supervision.StandaloneServerStateEntity; import com.megatim.fdxconsultation.model.supervision.StatutConfiguration; import javax.annotation.PostConstruct; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; /** * * @author ASUS */ @ApplicationScoped public class StandaloneServerStateEntityManagerImpl implements StandaloneServerStateEntityManager { @Inject private StandaloneServerStateEntityDAO dao; @Inject private MapStructMapper mapper; @Inject private AgentConfigurationEntityManager agentConfigurationManager; private StandaloneServerStateEntity standaloneServerStateEntity; @PostConstruct public void init() { standaloneServerStateEntity = dao.getCurrentStandaloneServerStateEntity(); } @Override public StandaloneServerStateEntityDAO getDao() { return dao; } @Override public StandaloneServerStateEntity persistStandaloneConfigurationStateEntity(StandaloneServerState standaloneServerState) { StandaloneServerStateEntity serverStateEntity = mapper.standaloneServerStateToStandaloneServerStateEntity(standaloneServerState); if (serverStateEntity != null) { dao.archiveServerState(); if (serverStateEntity.getAgentConfigurations() != null && !serverStateEntity.getAgentConfigurations().isEmpty()) { serverStateEntity.getAgentConfigurations().stream().forEach(a -> { agentConfigurationManager.archiveAgentConfiguration(a.getAgentCode()); a.setStandaloneServerState(serverStateEntity); a.setStatutConfiguration(StatutConfiguration.EN_COURS); }); } serverStateEntity.setStatutConfiguration(StatutConfiguration.EN_COURS); standaloneServerStateEntity = save(serverStateEntity); return standaloneServerStateEntity; } return null; } @Override public StandaloneServerStateEntity getCurrentStandaloneServerStateEntity() { return standaloneServerStateEntity; } }