CopyAssociationsFiles.java
package com.sintia.ffl.admin.optique.catalogue.batch.tasklet.enrichcatalog;
import com.sintia.ffl.admin.optique.catalogue.util.Constants;
import com.sintia.ffl.admin.optique.catalogue.util.FileNameNotMatchException;
import com.sintia.ffl.admin.optique.catalogue.util.FileUtil;
import com.sintia.ffl.admin.optique.services.services.FabricantService;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.configuration.annotation.StepScope;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.nio.file.Paths;
@Component
@StepScope
public class CopyAssociationsFiles implements Tasklet {
	private String	associationsFileName;
	private String	cOptoCodeFabricant;
	@Autowired
	private FabricantService fabricantService;
	@Autowired
	private FileUtil fileUtil;
	@Value("${catalog.to.enrich.directory}")
	private String	sourceDirectory;
	@Value("${catalog.enriched.directory}")
	private String	targetDirectoryWithAgreement;
	@Value("${catalog.unlist.directory}")
	private String	targetDirectoryWithoutAgreement;
	private String localDirectory;
	public CopyAssociationsFiles(
		@Value("#{jobParameters[associationFileName]}") String associationsFileName, @Value("${local.resources.directory}") String localDirectory,
		@Autowired FileUtil fileUtil)
		throws FileNameNotMatchException {
		this.associationsFileName = associationsFileName;
		this.fileUtil = fileUtil;
		this.localDirectory = localDirectory;
		this.cOptoCodeFabricant = fileUtil.extractMakerFromAssociationFileName(associationsFileName, Constants.INITAL_FILE);
	}
	@Override
	public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext)
		throws Exception {
		if (fabricantService.isMakerWithAgreement(cOptoCodeFabricant)) {
			fileUtil.copyFile(associationsFileName, Paths.get(localDirectory).resolve(sourceDirectory).toString(), Paths.get(localDirectory).resolve(
				targetDirectoryWithAgreement).toString());
		} else {
			fileUtil.copyFile(associationsFileName, Paths.get(localDirectory).resolve(sourceDirectory).toString(), Paths.get(localDirectory).resolve(
				targetDirectoryWithoutAgreement).toString());
		}
		return RepeatStatus.FINISHED;
	}
}