package com.megatim.fdxconsultation.core.impl.integration;
|
|
import com.megatim.fdxcommons.core.ifaces.helper.referentiel.DynamicTableCreator;
|
import com.megatim.fdxcommons.model.integration.TableDefinition;
|
import com.megatim.fdxcommons.tools.database.connection.DBConnection;
|
import com.megatim.fdxconsultation.core.impl.factory.FdxConsultationTableFactory;
|
import com.megatim.fdxconsultation.tools.context.AppCommonContext;
|
import java.sql.Connection;
|
import java.util.List;
|
import javax.annotation.Resource;
|
import javax.enterprise.context.Dependent;
|
import javax.sql.DataSource;
|
|
/**
|
*
|
* @author lenovo
|
*/
|
@Dependent
|
public class DynamicTableCreatorImpl implements DynamicTableCreator {
|
|
@Resource(lookup = AppCommonContext.JNDI_NAME)
|
private DataSource dataSource;
|
|
@Override
|
public void createDynamicTables(List<TableDefinition> tableDefinitions) throws Exception {
|
|
try ( Connection connection = new DBConnection(dataSource).connection()) {
|
|
for (TableDefinition tableDefinition : tableDefinitions) {
|
FdxConsultationTableFactory.createTable(tableDefinition.getCodeTypeFichier(),
|
tableDefinition.getReferentielVersion(),
|
connection)
|
.createTable(tableDefinition.getColumnDefinitions(), connection);
|
|
}
|
}
|
}
|
}
|