package com.mossle.internal.store.service;
import java.util.Date;
import javax.activation.DataSource;
import javax.annotation.Resource;
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.spi.store.InternalStoreConnector;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class StoreService {
private StoreInfoManager storeInfoManager;
private InternalStoreConnector internalStoreConnector;
public StoreDTO saveStore(String model, String key, DataSource dataSource,
String tenantId) throws Exception {
StoreDTO storeDto = this.internalStoreConnector.saveStore(model, key,
dataSource, tenantId);
StoreInfo storeInfo = new StoreInfo();
storeInfo.setName(dataSource.getName());
storeInfo.setModel(model);
storeInfo.setPath(storeDto.getKey());
storeInfo.setCreateTime(new Date());
storeInfo.setTenantId(tenantId);
storeInfoManager.save(storeInfo);
return storeDto;
}
public StoreDTO saveStore(String model, DataSource dataSource,
String tenantId) throws Exception {
StoreDTO storeDto = this.internalStoreConnector.saveStore(model,
dataSource, tenantId);
StoreInfo storeInfo = new StoreInfo();
storeInfo.setName(dataSource.getName());
storeInfo.setModel(model);
storeInfo.setPath(storeDto.getKey());
storeInfo.setCreateTime(new Date());
storeInfo.setTenantId(tenantId);
storeInfoManager.save(storeInfo);
return storeDto;
}
@Resource
public void setInternalStoreConnector(
InternalStoreConnector internalStoreConnector) {
this.internalStoreConnector = internalStoreConnector;
}
@Resource
public void setStoreInfoManager(StoreInfoManager storeInfoManager) {
this.storeInfoManager = storeInfoManager;
}
}