/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.megatim.fdxgenerator.service; import com.megatim.fdxgenerator.utilities.DataToImport; import com.megatim.fdxgenerator.utilities.ImportData; import com.megatim.fdxgenerator.model.StructureLigne; import com.megatim.fdxgenerator.model.TypeFichier; import com.megatim.fdxgenerator.model.ValidateurFichier; import com.megatim.fdxgenerator.model.ImportFile; import com.megatimfx.common.service.GenericCrudService; import com.megatim.fdxgenerator.model.dao.AbstractDAO; import com.megatim.fdxgenerator.model.dao.TypeFichierDAO; import com.megatim.fdxgenerator.utilities.PaginationElts; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Optional; /** * structLigne : id, code,format_date, position, taille, type_donnee, * validateur_fichier_id ValidateurFichier : id, nombre_position, * type_fichier_code * * @author STEPHANIE */ public class ImportFileService implements GenericCrudService { private static ImportFileService importFileService; private PaginationElts pagination; private ImportFileService() { } public static synchronized ImportFileService getInstance() { if (importFileService == null) { importFileService = new ImportFileService(); } return importFileService; } @Override public ImportFile add(ImportFile t) throws Exception { importDataFromFile(t); return t; } @Override public ImportFile edit(ImportFile t) throws Exception { throw new UnsupportedOperationException("Not supported yet."); } @Override public List getAll() throws Exception { throw new UnsupportedOperationException("Not supported yet."); } @Override public void delete(ImportFile t) throws Exception { throw new UnsupportedOperationException("Not supported yet."); } private void importDataFromFile(ImportFile im) { List fields = new ArrayList<>(); StructureLigne s = new StructureLigne(); ValidateurFichier v = new ValidateurFichier(); if (im != null && im.getType() != null) { if (im.getType().equals(TypeFichier.class)) { fields.add("code"); fields.add("libelle"); fields.add("codeParticipant"); } } DataToImport datIm = new DataToImport(new File(im.getFilePath()), im.getDelimiteurLigne().getCode(), im.getDelimiteurColonne().getCode(), im.getType(), fields); List datas = ImportData.importDataFromCsvFile(datIm); if (im.getType().equals(TypeFichier.class)) { AbstractDAO dao = new AbstractDAO<>(TypeFichier.class); datas.forEach(d -> { TypeFichier t = (TypeFichier) d; Optional opt = TypeFichierDAO.findByCode(t); if(!opt.isPresent()) dao.add(t); }); } } }