package com.mossle.internal.store.support; import javax.activation.DataSource; import javax.annotation.Resource; import com.mossle.api.store.StoreConnector; import com.mossle.api.store.StoreDTO; import com.mossle.internal.store.persistence.domain.StoreInfo; import com.mossle.internal.store.persistence.manager.StoreInfoManager; import com.mossle.internal.store.service.StoreService; import com.mossle.spi.store.InternalStoreConnector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class StoreConnectorImpl implements StoreConnector { private Logger logger = LoggerFactory.getLogger(StoreConnectorImpl.class); private StoreService storeService; private StoreInfoManager storeInfoManager; private InternalStoreConnector internalStoreConnector; public StoreDTO saveStore(String model, DataSource dataSource, String tenantId) throws Exception { return storeService.saveStore(model, dataSource, tenantId); } public StoreDTO saveStore(String model, String key, DataSource dataSource, String tenantId) throws Exception { return storeService.saveStore(model, key, dataSource, tenantId); } public StoreDTO getStore(String model, String key, String tenantId) throws Exception { StoreDTO storeDto = internalStoreConnector.getStore(model, key, tenantId); if (storeDto == null) { return null; } StoreInfo storeInfo = storeInfoManager.findUnique( "from StoreInfo where path=? and tenantId=?", key, tenantId); if (storeInfo == null) { storeDto.setDisplayName(key); } else { storeDto.setDisplayName(storeInfo.getName()); } return storeDto; } public void removeStore(String model, String key, String tenantId) throws Exception { internalStoreConnector.removeStore(model, key, tenantId); } @Resource public void setStoreService(StoreService storeService) { this.storeService = storeService; } @Resource public void setStoreInfoManager(StoreInfoManager storeInfoManager) { this.storeInfoManager = storeInfoManager; } @Resource public void setInternalStoreConnector( InternalStoreConnector internalStoreConnector) { this.internalStoreConnector = internalStoreConnector; } }