package com.megatim.fdxconsultation.core.impl.dataproductionworker;
|
|
import com.megatim.fdxcommons.model.dataproduction.DataProductionType;
|
import com.megatim.fdxconsultation.core.ifaces.dataproduction.metadata.ProductionMetaDataManager;
|
import com.megatim.fdxconsultation.core.ifaces.helper.TableInsert;
|
import com.megatim.fdxconsultation.core.ifaces.integration.ColumnDefinitionManager;
|
import com.megatim.fdxconsultation.core.impl.sockets.DataProductionSessionHandler;
|
import com.megatim.fdxconsultation.model.dataproduction.DataProduction;
|
import com.megatim.fdxconsultation.model.mappers.MapStructMapper;
|
import com.megatim.fdxconsultation.tools.context.AppCommonContext;
|
import javax.annotation.Resource;
|
import javax.enterprise.context.ApplicationScoped;
|
import javax.inject.Inject;
|
import javax.sql.DataSource;
|
|
/**
|
*
|
* @author Gabuntu
|
*/
|
@ApplicationScoped
|
class DataProductionTaskFactory {
|
|
@Resource(lookup = AppCommonContext.JNDI_NAME)
|
private DataSource dataSource;
|
|
@Inject
|
private ColumnDefinitionManager columnDefinitionManager;
|
|
@Inject
|
private DataProductionSessionHandler dataProductionSessionHandler;
|
|
@Inject
|
private TableInsert tableInsert;
|
|
@Inject
|
private MapStructMapper mapper;
|
|
@Inject
|
private ProductionMetaDataManager metaDataManager;
|
|
DataProductionTask createDataProductionTask(DataProduction dataProduction) {
|
if (dataProduction.getDataProductionType().equals(DataProductionType.DELETE)) {
|
return new DeleteDataProductionTask(dataProduction, dataSource);
|
} else {
|
return new FileDataProductionTask(dataProduction, dataSource, columnDefinitionManager, dataProductionSessionHandler, tableInsert, mapper, metaDataManager);
|
}
|
}
|
|
}
|