package nl.ipo.cds.etl.process.config;
import java.util.Properties;
import javax.inject.Inject;
import javax.inject.Named;
import javax.sql.DataSource;
import nl.idgis.commons.jobexecutor.JobLogger;
import nl.ipo.cds.dao.ManagerDao;
import nl.ipo.cds.etl.process.*;
import nl.ipo.cds.etl.theme.ThemeDiscoverer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Processes {
private @Inject ManagerDao managerDao;
private @Inject JobLogger logger;
private @Inject @Named("processMessages") Properties processMessages;
@Bean
@Inject
public ValidateProcess validateProcess (final @Named("validateFeatureProcessor") ValidateFeatureProcessor processor) {
return new ValidateProcess (
managerDao,
processor,
processMessages
);
}
@Bean
@Inject
public ImportProcess importProcess (final @Named("importFeatureProcessor") ImportFeatureProcessor processor) {
return new ImportProcess (
managerDao,
processor,
processMessages
);
}
@Bean
public TransformProcess transformProcess () {
return new TransformProcess (managerDao);
}
@Bean
@Inject
public RemoveProcess removeProcess (final DataSource dataSource, final ThemeDiscoverer themeDiscoverer) {
return new RemoveProcess (dataSource, themeDiscoverer);
}
@Bean
@Inject
public TagProcess tagProcess (final DataSource dataSource, final ThemeDiscoverer themeDiscoverer) {
return new TagProcess(dataSource, themeDiscoverer);
}
}