From e34275be46c7c50daa5f5229a4c19c4e0ffa83ff Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Wed, 10 Dec 2025 16:18:48 +0000
Subject: [PATCH] move to local repo

---
 generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Entity.java                                     |   62 
 generatetxt/src/main/java/com/megatim/generatetxt/jaxb/EntityList.java                                 |   29 
 generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.class  |    0 
 generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.class |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/utilities/ParserUtils.java                           |  358 +++
 generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.java   |   30 
 generatetxt/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst   |    0 
 generatetxt/target/classes/com/megatim/generatetxt/App.class                                           |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Assertion.java                                  |   63 
 generatetxt/src/main/resources/predicatelogic-engine.xml                                               | 1665 ++++++++++++++++++
 generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidate.class                           |    0 
 generatetxt/target/generatetxt-1.0.jar                                                                 |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/pojo/ResultFileParsing.java                          |   21 
 generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidateDescription.class                |    0 
 generatetxt/target/classes/com/megatim/generatetxt/utilities/Utilities.class                           |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/App.java                                             |   26 
 generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidate.java                             |   49 
 generatetxt/target/classes/com/megatim/generatetxt/jaxb/Entity.class                                   |    0 
 generatetxt/target/classes/com/megatim/generatetxt/pojo/ParseResult.class                              |    0 
 generatetxt/target/classes/com/megatim/generatetxt/model/AlphaNumeriqueField.class                     |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.java                   |   67 
 generatetxt/target/classes/com/megatim/generatetxt/jaxb/ParamValue.class                               |    0 
 generatetxt/target/classes/predicatelogic-engine.xml                                                   | 1665 ++++++++++++++++++
 generatetxt/src/main/java/com/megatim/generatetxt/enums/DataType.java                                  |   38 
 generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst           |   23 
 generatetxt/target/classes/com/megatim/generatetxt/model/TypeFichier.class                             |    0 
 generatetxt/pom.xml                                                                                    |   92 +
 generatetxt/target/classes/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.class                 |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/pojo/Delimiteur.java                                 |   28 
 generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils$1.class                       |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Validation.java                                 |   50 
 generatetxt/target/classes/com/megatim/generatetxt/enums/DataType.class                                |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/generate/ParseData.java                              |  572 ++++++
 generatetxt/target/classes/com/megatim/generatetxt/pojo/ResultFileParsing.class                        |    0 
 generatetxt/target/classes/com/megatim/generatetxt/jaxb/Assertion.class                                |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/jaxb/PredicateConfig.java                            |   62 
 generatetxt/src/main/java/com/megatim/generatetxt/pojo/ParseResult.java                                |   22 
 generatetxt/src/main/java/com/megatim/generatetxt/utilities/Utilities.java                             |   46 
 generatetxt/src/main/java/com/megatim/generatetxt/model/TypeFichier.java                               |   90 
 generatetxt/target/classes/com/megatim/generatetxt/pojo/Constantes.class                               |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/jaxb/ParamValue.java                                 |   49 
 generatetxt/target/classes/com/megatim/generatetxt/generate/ParseData.class                            |    0 
 generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst         |   24 
 generatetxt/target/classes/com/megatim/generatetxt/model/TruncatedElement.class                        |    0 
 generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils.class                         |    0 
 generatetxt/target/classes/com/megatim/generatetxt/jaxb/PredicateConfig.class                          |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.java    |   30 
 generatetxt/src/main/java/com/megatim/generatetxt/pojo/Constantes.java                                 |   29 
 generatetxt/target/classes/com/megatim/generatetxt/pojo/Delimiteur.class                               |    0 
 generatetxt/target/classes/com/megatim/generatetxt/jaxb/EntityList.class                               |    0 
 generatetxt/src/main/java/com/megatim/generatetxt/model/AlphaNumeriqueField.java                       |  103 +
 generatetxt/target/maven-archiver/pom.properties                                                       |    5 
 generatetxt/src/main/java/com/megatim/generatetxt/model/TruncatedElement.java                          |   84 
 generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidateDescription.java                  |   39 
 generatetxt/target/generatetxt-1.0-jar-with-dependencies.jar                                           |    0 
 generatetxt/target/classes/com/megatim/generatetxt/jaxb/Validation.class                               |    0 
 56 files changed, 5,421 insertions(+), 0 deletions(-)

diff --git a/generatetxt/pom.xml b/generatetxt/pom.xml
new file mode 100644
index 0000000..f745e56
--- /dev/null
+++ b/generatetxt/pom.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.megatim</groupId>
+    <artifactId>generatetxt</artifactId>
+    <version>1.0</version>
+    <packaging>jar</packaging>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <exec.mainClass>com.megatim.generatetxt.App</exec.mainClass>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tika</groupId>
+            <artifactId>tika-parser-text-module</artifactId>
+            <version>2.9.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.20</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+            <version>2.0.0.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate.validator</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>6.0.13.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-core</artifactId>
+            <version>5.3.0.Final</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.megatimfx.common</groupId>
+            <artifactId>megatimfx-common</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.dhatim</groupId>
+            <artifactId>fastexcel-reader</artifactId>
+            <version>0.15.7</version>
+        </dependency>
+        <dependency>
+            <groupId>com.megatim.typefichier.validator</groupId>
+            <artifactId>typefichier-validator</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.11.0</version>
+        </dependency>
+    </dependencies>
+    
+    <build>
+        <plugins>   
+            
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>com.megatim.generatetxt.App</mainClass>
+                        </manifest>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
+                        <phase>package</phase> <!-- bind to the packaging phase -->
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+                     
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/App.java b/generatetxt/src/main/java/com/megatim/generatetxt/App.java
new file mode 100644
index 0000000..06d9e7f
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/App.java
@@ -0,0 +1,26 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Project/Maven2/JavaApp/src/main/java/${packagePath}/${mainClassName}.java to edit this template
+ */
+package com.megatim.generatetxt;
+
+import com.megatim.generatetxt.generate.ParseData;
+import java.io.File;
+import com.megatim.generatetxt.pojo.FileToValidateDescription;
+import java.util.HashSet;
+
+/**
+ *
+ * @author ASUS
+ */
+public class App {
+
+    public static void main(String[] args) throws Exception {
+        File dataFile = new File("C:\\Users\\ASUS\\Documents\\minfopra\\E20.M102025.csv");
+        String validatorPath = "C:\\Users\\ASUS\\Downloads\\REF000027-20251112-171437\\validateurs\\000026\\FPR\\Fdx-ValidatorFPRE20-20251104-094833.xml";
+        String outputDir = "C:\\Users\\ASUS\\Documents\\ERROR";
+        FileToValidateDescription fileDesc = new FileToValidateDescription(dataFile, "\n", ";", "FPRE20", validatorPath, outputDir);
+        File file = new ParseData().validateCsvFile(fileDesc, true, new HashSet<>(), 2);
+        System.out.println("--------- file = " + file.getAbsolutePath());
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.java b/generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.java
new file mode 100644
index 0000000..e40c147
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.java
@@ -0,0 +1,30 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
+ */
+package com.megatim.generatetxt.constraints;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ *
+ * @author ASUS
+ */
+@Documented
+@Constraint(validatedBy = FileToValidateDelimiterValidator.class)
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface FileToValidateDelimiterConstraint {
+    
+     String message() default "Les délimiteurs de ligne et de colonne sont obligatoires";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.java b/generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.java
new file mode 100644
index 0000000..0de8d77
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.java
@@ -0,0 +1,30 @@
+/*
+ * 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.generatetxt.constraints;
+
+import com.megatim.generatetxt.enums.DataType;
+import com.megatim.generatetxt.pojo.FileToValidate;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ *
+ * @author ASUS
+ */
+public class FileToValidateDelimiterValidator  implements ConstraintValidator<FileToValidateDelimiterConstraint, FileToValidate> {
+    
+    @Override
+    public boolean isValid(FileToValidate t, ConstraintValidatorContext cvc) {
+
+        if (t.getDataType() != null
+                && (t.getDataType().equals(DataType.CSV) || t.getDataType().equals(DataType.TXT))) {
+
+            return t.getDelimiteurColonne()!= null && t.getDelimiteurLigne()!= null ;
+
+        }
+
+        return true;
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/enums/DataType.java b/generatetxt/src/main/java/com/megatim/generatetxt/enums/DataType.java
new file mode 100644
index 0000000..4f1b640
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/enums/DataType.java
@@ -0,0 +1,38 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.generatetxt.enums;
+
+import java.util.stream.Stream;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public enum DataType {
+    
+    CSV("CSV"), XLSX("Excel-XLSX"), XLS("Excel-XLS"), TXT("Texte(TXT)"),JSON("JSON");
+
+    private final String  dataType;
+
+    private DataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+     public static DataType of(String dataType) {
+        return Stream.of(DataType.values())
+          .filter(p -> p.getDataType().equals(dataType))
+          .findFirst()
+          .orElseThrow(IllegalArgumentException::new);
+    }
+     
+    public String getDataType() {
+        return dataType;
+    }
+            
+    @Override
+    public String toString() {
+        return dataType;
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/generate/ParseData.java b/generatetxt/src/main/java/com/megatim/generatetxt/generate/ParseData.java
new file mode 100644
index 0000000..3ebb45d
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/generate/ParseData.java
@@ -0,0 +1,572 @@
+/*
+ * 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.generatetxt.generate;
+
+import com.megatim.generatetxt.model.AlphaNumeriqueField;
+import com.megatim.generatetxt.model.TruncatedElement;
+import com.megatim.generatetxt.pojo.Constantes;
+import com.megatim.generatetxt.pojo.FileToValidateDescription;
+import com.megatim.generatetxt.pojo.ResultFileParsing;
+import com.megatim.generatetxt.utilities.ParserUtils;
+import static com.megatim.generatetxt.utilities.Utilities.getCharset;
+import com.megatim.typefichier.validator.Validator;
+import com.megatim.typefichier.validator.model.ConfigStreamValidator;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.math.BigDecimal;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.stream.Collectors;
+import org.apache.commons.csv.CSVFormat;
+import org.apache.commons.csv.CSVRecord;
+import org.apache.commons.io.IOUtils;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ParseData {
+
+    public File validateCsvFile(FileToValidateDescription fileDescription, boolean headerPresent, Set<AlphaNumeriqueField> alphaNumeriqueToBeTruncated, int nbreThreads) throws Exception {
+        File fileToValidate = parseCsvFile(fileDescription, headerPresent, alphaNumeriqueToBeTruncated);
+
+        byte[] targetArray = IOUtils.toByteArray(ParseData.class.getClassLoader().getResourceAsStream("predicatelogic-engine.xml"));
+        ConfigStreamValidator configValidator = new ConfigStreamValidator(
+                targetArray,
+                IOUtils.toByteArray(new FileInputStream(fileDescription.getValidatorPath())),
+                fileDescription.getOutputDir(),
+                fileToValidate
+        );
+
+        if (new Validator().validate(configValidator, Boolean.FALSE, Boolean.FALSE, nbreThreads)) {
+            return fileToValidate;
+        }
+        throw new Exception("Echec Validation\nFichier en entrée : " + fileDescription.getFile().getAbsolutePath() + "\nFichier en TXT sortie : " + fileToValidate.getAbsolutePath()
+                + "\nFichier des erreurs : " + fileToValidate.getName() + Validator.ERROR_EXTENSION);
+    }
+
+    /**
+     *
+     * @param fileDescription objet contenant les informations d'extraction de
+     * données
+     * @param headerPresent : renseigne si le fichier a une ligne d'entête
+     * @param alphaNumeriqueToBeTruncated : liste des champs à tronquer
+     * @throws Exception
+     */
+    private File parseCsvFile(FileToValidateDescription fileDescription, boolean headerPresent, Set<AlphaNumeriqueField> alphaNumeriqueToBeTruncated) throws Exception {
+        AtomicInteger numeroLigne = new AtomicInteger(0);
+        AtomicBoolean columnTruncated = new AtomicBoolean();
+
+        if (fileDescription != null) {
+            String fileName = fileDescription.getCodeTypeFichier() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + generateTierce() + ".txt";
+            File outputFile = new File(fileDescription.getOutputDir(), fileName);
+            Map<Integer, Map> mapParams = ParserUtils.getValidateurElements(fileDescription.getValidatorPath());
+            Charset charset = getCharset(fileDescription.getFile());
+
+            CSVFormat csvFormat = CSVFormat.DEFAULT.builder()
+                    .setSkipHeaderRecord(headerPresent)
+                    .setIgnoreSurroundingSpaces(true)
+                    .setTrim(true)
+                    .setDelimiter(fileDescription.getColumnDelimiter())
+                    .build();
+
+            AtomicBoolean withHeader = new AtomicBoolean(headerPresent);
+            Path pathOfTruncatedElts = createTruncatedEltsPath(fileDescription.getCodeTypeFichier(), fileDescription.getOutputDir(), fileDescription.getFile());
+
+            try ( FileInputStream fis = new FileInputStream(fileDescription.getFile());  InputStreamReader isr = new InputStreamReader(fis, charset);  BufferedReader reader = new BufferedReader(isr)) {
+                try ( BufferedWriter bufferWriter = Files.newBufferedWriter(outputFile.toPath(), charset, StandardOpenOption.APPEND, StandardOpenOption.CREATE, StandardOpenOption.SYNC);  BufferedWriter truncateWriter = Files.newBufferedWriter(pathOfTruncatedElts, StandardCharsets.UTF_8, StandardOpenOption.APPEND, StandardOpenOption.CREATE, StandardOpenOption.SYNC)) {
+
+                    Iterable<CSVRecord> records = csvFormat.parse(reader);
+
+                    for (CSVRecord record : records) {
+
+                        String[] columnsTableLine = new String[record.size()];
+
+                        AtomicInteger i = new AtomicInteger();
+
+                        if (!withHeader.get()) {
+
+                            record.forEach(column -> {
+
+                                columnsTableLine[i.get()] = column != null ? column.replaceAll(" {2,}", " ").replaceAll("\r", "").replaceAll("\n", "").replaceAll("\t", "") : "";
+
+                                i.set(i.get() + 1);
+
+                            });
+
+                            //Nettoyage d'une colonne de chaque ligne
+                            ResultFileParsing resultFileParsing = buildFinalColumnsTableLine(outputFile, columnsTableLine, mapParams, alphaNumeriqueToBeTruncated, numeroLigne.incrementAndGet(), truncateWriter, fileDescription.getCodeTypeFichier());
+                            String[] finalColumnsTableLine = resultFileParsing.getFinalColumnsTableLine();
+                            columnTruncated.set(resultFileParsing.isColumnTruncated());
+
+                            String[] encodedStrings = ParserUtils.encodeStrings(finalColumnsTableLine, charset);
+                            ParserUtils.writeToFile(encodedStrings, bufferWriter);
+
+                        } else {
+
+                            withHeader.set(false);
+
+                        }
+
+                    }
+
+                } catch (Exception e) {
+                    Logger.getLogger(ParseData.class.getName()).log(Level.SEVERE, e.getMessage(), e);
+                }
+
+                //Si au moins une colonne a été tronqué, alors copier le fichier dont les lignes ont été tronqué dans le répertoire d'archivage
+                if (columnTruncated.get()) {
+                    Path originalFilePathInArchiveFolder = createOriginalFileInArchive(fileDescription.getCodeTypeFichier(), fileDescription.getOutputDir(), fileDescription.getFile());
+
+                    //Copie du fichier dont les colonnes ont été tronqués vers le répertoire archivage 
+                    if (fileDescription.getFile().exists()) {
+                        Files.copy(fileDescription.getFile().toPath(), originalFilePathInArchiveFolder);
+                    }
+
+                } else {//Sinon supprimer le fichier des éléments tronqués, car il est vide
+                    Files.deleteIfExists(pathOfTruncatedElts);
+                }
+            }
+            return outputFile;
+        }
+        return null;
+    }
+
+    /**
+     * méthode permettant de construire le chemin du fichier d'origine dans le
+     * répertoire d'archivages
+     *
+     * @param validateur
+     * @param originalFile
+     * @return
+     * @throws IOException
+     */
+    private static Path createOriginalFileInArchive(String codeTypeFichier, String arhivageDirectory, File originalFile) throws IOException {
+        final String today = LocalDate.now().toString();
+
+        Path originalFilesDir = Paths.get(arhivageDirectory, today, codeTypeFichier, "fichiers");
+
+        if (!Files.exists(originalFilesDir, LinkOption.NOFOLLOW_LINKS)) {
+            Files.createDirectories(originalFilesDir);
+        }
+
+        Path originalFilePath = Paths.get(arhivageDirectory, today, codeTypeFichier, "fichiers", originalFile.getName());
+        final String fileNameWithoutExtension = fileNameWithoutExtension(originalFile);
+
+        //Si le fichier existe dans le répertoire d'archivages, alors ajouter un numero d'ordre dans son nom
+        if (Files.exists(originalFilePath, LinkOption.NOFOLLOW_LINKS)) {
+            List<Path> existingFiles = Files.list(originalFilesDir).filter(p
+                    -> p.toString().contains(fileNameWithoutExtension)).collect(Collectors.toList());
+
+            int nbFiles = existingFiles.size();
+
+            if (nbFiles > 0) {
+                originalFilePath = Paths.get(arhivageDirectory, today, codeTypeFichier, "fichiers",
+                        fileNameWithoutExtension + "(" + nbFiles + ")" + getFileExtension(originalFile));
+            }
+        }
+
+        return originalFilePath;
+    }
+
+    /**
+     * Méthode permettant de construire la donnée finale à écrire dans le
+     * fichier texte
+     *
+     * @param outputFile
+     * @param initialColumnsTableLine
+     * @param mapParams
+     * @param fieldsToBeTruncated
+     * @param numeroLigne
+     * @param truncateWriter
+     * @return
+     * @throws Exception
+     */
+    private static ResultFileParsing buildFinalColumnsTableLine(File outputFile, String[] initialColumnsTableLine, Map<Integer, Map> mapParams, Set<AlphaNumeriqueField> fieldsToBeTruncated, int numeroLigne, BufferedWriter truncateWriter, String codeTypeFichier) throws Exception {
+
+        String[] finalColumnsTableLine = new String[mapParams.size() - 1];
+        String[] columnsTableLine = new String[mapParams.size() - 1];
+
+        //On copie les éléments à normaliser dans un nouveau tableau
+        for (int j = 0; j < finalColumnsTableLine.length; j++) {
+
+            //Arreter la copie si on atteint la fin du tableau initial
+            if (j >= initialColumnsTableLine.length) {
+                j = finalColumnsTableLine.length;
+            } else {
+                columnsTableLine[j] = initialColumnsTableLine[j];
+            }
+        }
+
+        //Type de données utilisé pour retourner le résultat de la construction des lignes de données
+        ResultFileParsing resultFileParsing = new ResultFileParsing();
+
+        int index = 0;
+
+        for (String str : columnsTableLine) {
+
+            String columnTableLine = str != null ? str.trim() : "";
+
+            if (index < mapParams.size() - 1) {
+
+                Map<String, String> map = mapParams.get(index + 1);
+
+                final int taille = Integer.parseInt(map.get(Constantes.LIBELLE_TAILLE));
+                String typeDonnee = map.get(Constantes.LIBELLE_TYPE_DONNEE);
+
+                //Traitement d'une donnée de type décimal
+                if (typeDonnee.equalsIgnoreCase(Constantes.LIBELLE_DECIMAL)) {
+
+                    if (columnTableLine.length() >= taille) {
+                        finalColumnsTableLine[index] = columnTableLine;
+                    } else {
+
+                        finalColumnsTableLine[index] = nomarlizeDecimal(columnTableLine, map);
+                    }
+
+                    //Traitement d'une donnée de type DATE
+                } else if (typeDonnee.equalsIgnoreCase(Constantes.LIBELLE_DATE)) {
+
+                    if (columnTableLine.length() >= taille) {
+                        finalColumnsTableLine[index] = columnTableLine;
+                    } else {
+
+                        finalColumnsTableLine[index] = columnTableLine + generateUnknown(taille - columnTableLine.length(), " ");
+                    }
+
+                    //Traitement d'une donnée de type NUMERIQUE
+                } else if (typeDonnee.equalsIgnoreCase(Constantes.LIBELLE_NUMERIQUE)) {
+                    finalColumnsTableLine[index] = nomarlizeNumber(columnTableLine, taille);
+
+                } else if (typeDonnee.equalsIgnoreCase(Constantes.LIBELLE_ALPHANUMERIQUE)) {//Traitement d'une donnée de type ALPHANUMERIQUE
+
+                    if (columnTableLine.length() < taille) {
+
+                        finalColumnsTableLine[index] = columnTableLine + generateUnknown(taille - columnTableLine.length(), " ");
+
+                    } else if (columnTableLine.length() == taille) {
+
+                        finalColumnsTableLine[index] = columnTableLine;
+
+                    } else {
+
+                        if (!fieldsToBeTruncated.isEmpty()) {
+
+                            //Récupérer l'index de début du champ en cours de traitement
+                            int indexDebutChamp = Integer.parseInt(map.get(Constantes.LIBELLE_INDEX));
+
+                            //Mettre les champs à tronquer dans une liste afin d'y rechercher le champ en cours de traitement
+                            List<AlphaNumeriqueField> liste = Arrays.asList(fieldsToBeTruncated.toArray(new AlphaNumeriqueField[0]))
+                                    .stream().filter(a -> {
+
+                                        // ici on vérifie si l'index de début du champ en cours de traitement correspond à l'index d'un des champs à tronquer
+                                        //Car si 2 champs ont le même index, alors il s'agit d'un seul champ
+                                        return a.getIndex() == indexDebutChamp;
+                                    }).collect(Collectors.toList());
+
+                            // Si on a trouvé un champ à tronquer qui a le même index que le champ courant alors, tronquer le champ
+                            boolean found = (liste.size() == 1);
+
+                            if (found) {
+
+                                AlphaNumeriqueField alphaField = liste.get(0);
+
+                                String finalData = columnTableLine.substring(0, taille);
+
+                                TruncatedElement truncatedElement = new TruncatedElement(codeTypeFichier,
+                                        alphaField.getCodeColonne(), columnTableLine, finalData,
+                                        outputFile.getName(), LocalDateTime.now(), numeroLigne, taille, columnTableLine.length());
+
+//                                Journalisation du champs tronqués
+                                writeTruncatedElementsToFile(truncatedElement, truncateWriter);
+
+                                resultFileParsing.setColumnTruncated(true);
+
+                                finalColumnsTableLine[index] = finalData;
+                            } else {
+                                finalColumnsTableLine[index] = columnTableLine;
+                            }
+
+                        } else {
+                            finalColumnsTableLine[index] = columnTableLine;
+                        }
+                    }
+                } else {
+                    finalColumnsTableLine[index] = columnTableLine;
+                }
+            }
+
+            index++;
+
+        }
+
+        resultFileParsing.setFinalColumnsTableLine(finalColumnsTableLine);
+        return resultFileParsing;
+    }
+
+    /**
+     * Méthode qui normalise un nombre en ajoutant des zéros à gauche
+     *
+     * @param value
+     * @param taille
+     * @return
+     */
+    private static String nomarlizeNumber(String value, int taille) {
+        String newValue = value
+                .trim()
+                .replaceAll("\\s+", "")
+                .replaceAll("\\u00A0", "")
+                .replaceAll("\t", "")
+                .replaceAll("\r", "")
+                .replaceAll("\n", "");
+
+        if (newValue.matches("[-+]?\\d+(\\.\\d+)?[eE][-+]?\\d+") || newValue.matches("^\\d{1,3},\\d+E[+-]?\\d+$")) {
+            newValue = new BigDecimal(newValue.replace(',', '.')).toPlainString();//Remplacer la virgule par le point
+
+        } else if (!newValue.matches("\\d+")) {
+            return generateUnknown(taille - newValue.length(), " ") + newValue;
+        }
+        return generateUnknown(taille - newValue.length(), " ") + newValue;
+    }
+
+    /**
+     * Méthode qui normalise les nombres décimaux conformat aux tailles, en
+     * ajoutant éventuellement des zéros à gauche de la partie entière et à
+     * droite de la partie décimale renseignés dans le validateur
+     *
+     * @param value : chaîne à normaliser
+     * @param map : map contenant les infos sur les parties entire et décimale
+     * @return
+     */
+    private static String nomarlizeDecimal(String value, Map<String, String> map) {
+        String newValue = value.trim();
+
+        //taille de la partie décimale
+        int taillePartieDecimale = Integer.parseInt(map.get(Constantes.LIBELLE_TAILLE_PARTIE_DECIMALE));
+
+        //Taille totale du nombre décimal
+        int taille = Integer.parseInt(map.get(Constantes.LIBELLE_TAILLE));
+
+        //taille de la partie entière. On enlève un, car c'est la taille du séparateur
+        int taillePartieEntiere = taille - taillePartieDecimale - 1;
+
+        String separator = map.get(Constantes.LIBELLE_SEPARATEUR_DECIMAL);
+        String[] parts;
+        String escapedSeparator;
+
+        if (separator.equals(".")) {
+            escapedSeparator = "\\.";
+        } else {
+            escapedSeparator = separator;
+        }
+
+        String result = "";
+
+        if (value.isEmpty()) {
+            result = generateUnknown(taillePartieEntiere, "?") + separator + generateUnknown(taillePartieDecimale, "?");
+        } else {
+            parts = newValue.split(escapedSeparator);
+
+            //Si le nombre a une partie décimale
+            if (newValue.contains(separator)) {
+
+                //si le nombre a une partie entière et une partie décimale
+                switch (parts.length) {
+                    case 2:
+                        //Si la partie entière n'est pas vide
+                        if (!parts[0].isEmpty()) {
+
+                            result = generateUnknown(taillePartieEntiere - parts[0].length(), "0") + parts[0];
+                        } else {
+
+                            //Si partie entière vide, remplacer le vide par les séparateurs
+                            result = generateUnknown(taillePartieEntiere, "?");
+                        }
+                        result += separator;
+
+                        //Si la partie décimale n'est pas vide
+                        if (!parts[1].isEmpty()) {
+
+                            result += parts[1] + generateUnknown(taillePartieDecimale - parts[1].length(), "0");
+                        } else {
+
+                            //Si partie décimale vide, remplacer le vide par le point d'interrogation
+                            result += generateUnknown(taillePartieDecimale, "?");
+                        }
+                        break;
+                    case 1:
+                        //Si c'est la partie entière qui est manquante
+                        if (newValue.matches(escapedSeparator + ".+")) {
+
+                            result += generateUnknown(taillePartieEntiere, "?") + separator + parts[0]
+                                    + generateUnknown(taillePartieDecimale - parts[0].length(), "0");
+
+                            //Si c'est la partie décimale qui est manquante
+                        } else if (newValue.matches(".+" + escapedSeparator)) {
+
+                            result += generateUnknown(taillePartieEntiere - parts[0].length(), "0") + parts[0] + separator
+                                    + generateUnknown(taillePartieDecimale, "?");
+                        }
+                        break;
+                    default:
+                        result += generateUnknown(taillePartieEntiere, "?") + separator
+                                + generateUnknown(taillePartieDecimale, "?");
+                        break;
+                }
+            } else {
+
+                //Si le nombre n'est pas décimale, ajouter une partie décimale en complétant avec des zéros
+                result = generateUnknown(taillePartieEntiere - newValue.length(), "0") + newValue + separator
+                        + generateUnknown(taillePartieDecimale, "0");
+            }
+        }
+        return result;
+
+    }
+
+    /**
+     * Méthode qui écrit les informations sur les éléments tronqués dans un
+     * fichier
+     *
+     * @param t
+     * @param bufferWriter
+     * @throws IOException
+     */
+    private static void writeTruncatedElementsToFile(TruncatedElement t, final BufferedWriter bufferWriter) throws IOException {
+
+        //Ecriture dans le fichier output
+        StringBuilder safeLineBuilder = new StringBuilder(0);
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime date = t.getDateAction();
+
+        safeLineBuilder.append("Fichier:").append(t.getFileName()).append("|");
+        safeLineBuilder.append("Date:").append(date.format(formatter)).append("|");
+        safeLineBuilder.append("Ligne:").append(t.getLineNumber()).append("|");
+        safeLineBuilder.append("Colonne:").append(t.getCodeColonne()).append("|");
+        safeLineBuilder.append("Taille attendue:").append(t.getTailleAttendue()).append("|");
+        safeLineBuilder.append("Donnée finale:").append(t.getFinalData()).append("|");
+        safeLineBuilder.append("Taille trouvée:").append(t.getTailleTrouvee()).append("|");
+        safeLineBuilder.append("Donnée initiale:").append(t.getInitialData());
+
+        String safeLine = safeLineBuilder.toString();
+
+        if (safeLine.length() > 0) {
+
+            bufferWriter.write(safeLine + System.lineSeparator());
+
+        }
+    }
+
+    /**
+     * Méthode qui génère un nombre précis d'un quelconque caractère
+     *
+     * @param nbOfCharacter : nombre de fois à générer le caractère
+     * @param character : caractère à générer
+     * @return
+     */
+    private static String generateUnknown(int nbOfCharacter, String character) {
+
+        String str = "";
+
+        for (int i = 0; i < nbOfCharacter; i++) {
+
+            str += character;
+
+        }
+
+        return str;
+
+    }
+
+    /**
+     * Méthode qui retourne l'extension d'un fichier
+     *
+     * @param file
+     * @return
+     */
+    private static String getFileExtension(File file) {
+        int index = file.getName().lastIndexOf(".");
+
+        if (index <= 0) {
+            return "";
+
+        } else {
+            return file.getName().substring(index);
+        }
+    }
+
+    /**
+     * Méthode qui construit le chemin du fichier qui va contenit les logs des
+     * éléments tronqués
+     *
+     * @param validateur
+     * @param outputFile
+     * @return
+     * @throws IOException
+     */
+    private static Path createTruncatedEltsPath(String codeTypeFichier, String arhivageDirectory, File outputFile) throws IOException {
+        final String today = LocalDate.now().toString();
+
+        Path logDir = Paths.get(arhivageDirectory, today, codeTypeFichier, "logs");
+
+        if (!Files.exists(logDir, LinkOption.NOFOLLOW_LINKS)) {
+            Files.createDirectories(logDir);
+        }
+
+        Path pathOfTruncatedElts = Paths.get(arhivageDirectory, today, codeTypeFichier, "logs", fileNameWithoutExtension(outputFile) + "_truncated_elements.txt");
+
+        return pathOfTruncatedElts;
+
+    }
+
+    /**
+     * Méthode qui retourne le nom fichier sans extension
+     *
+     * @param file
+     * @return
+     */
+    private static String fileNameWithoutExtension(File file) {
+        int index = file.getName().lastIndexOf(".");
+
+        if (index > 0) {
+
+            return file.getName().substring(0, index);
+        } else {
+            return file.getName();
+        }
+    }
+
+    private String generateTierce() {
+
+        // Instance of random class
+        Random rand = new Random();
+        int upperbound = 60;
+        int random = rand.nextInt(upperbound);
+
+        return String.format("%02d", random);
+
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Assertion.java b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Assertion.java
new file mode 100644
index 0000000..6ecbd22
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Assertion.java
@@ -0,0 +1,63 @@
+/*
+ * 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.generatetxt.jaxb;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ *
+ * @author ASUS
+ */
+//@XmlRootElement(name = "assertion")
+public class Assertion {
+
+    private String assertName;
+
+    private String errorCode;
+
+    private boolean activate;
+
+    private List<ParamValue> paramValues = new ArrayList<>();
+
+    @XmlAttribute(name = "assert-name")
+    public String getAssertName() {
+        return assertName;
+    }
+
+    public void setAssertName(String assertName) {
+        this.assertName = assertName;
+    }
+
+    @XmlAttribute(name = "error-code")
+    public String getErrorCode() {
+        return errorCode;
+    }
+
+    public void setErrorCode(String errorCode) {
+        this.errorCode = errorCode;
+    }
+
+    @XmlAttribute
+    public boolean isActivate() {
+        return activate;
+    }
+
+    public void setActivate(boolean activate) {
+        this.activate = activate;
+    }
+
+    @XmlElement(name = "param-value")
+    public List<ParamValue> getParamValues() {
+        return paramValues;
+    }
+
+    public void setParamValues(List<ParamValue> paramValues) {
+        this.paramValues = paramValues;
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Entity.java b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Entity.java
new file mode 100644
index 0000000..e1458f4
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Entity.java
@@ -0,0 +1,62 @@
+/*
+ * 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.generatetxt.jaxb;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Entity {
+
+    private String name;
+
+    private String errorReportField;
+
+    private boolean activate;
+
+    private List<Validation> validations = new ArrayList<>();
+
+    @XmlAttribute
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @XmlAttribute(name = "error-report-field")
+    public String getErrorReportField() {
+        return errorReportField;
+    }
+
+    public void setErrorReportField(String errorReportField) {
+        this.errorReportField = errorReportField;
+    }
+
+    @XmlAttribute
+    public boolean isActivate() {
+        return activate;
+    }
+
+    public void setActivate(boolean activate) {
+        this.activate = activate;
+    }
+
+    @XmlElement(name = "validation")
+    public List<Validation> getValidations() {
+        return validations;
+    }
+
+    public void setValidations(List<Validation> validations) {
+        this.validations = validations;
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/EntityList.java b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/EntityList.java
new file mode 100644
index 0000000..7694283
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/EntityList.java
@@ -0,0 +1,29 @@
+/*
+ * 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.generatetxt.jaxb;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ *
+ * @author ASUS
+ */
+//@XmlRootElement(name = "entities")
+public class EntityList {
+
+    @XmlElement(name = "entity")
+    private List<Entity> entityList = new ArrayList<>();
+
+    public List<Entity> getEntities() {
+        return entityList;
+    }
+
+    public void setEntities(List<Entity> entities) {
+        this.entityList = entities;
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/ParamValue.java b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/ParamValue.java
new file mode 100644
index 0000000..cac197b
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/ParamValue.java
@@ -0,0 +1,49 @@
+/*
+ * 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.generatetxt.jaxb;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+/**
+ *
+ * @author ASUS
+ */
+//@XmlRootElement(name = "param-value")
+public class ParamValue {
+
+    private String name;
+
+    private String value;
+
+    private String field;
+
+    @XmlAttribute
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @XmlAttribute
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @XmlAttribute
+    public String getField() {
+        return field;
+    }
+
+    public void setField(String field) {
+        this.field = field;
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/PredicateConfig.java b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/PredicateConfig.java
new file mode 100644
index 0000000..2b6a482
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/PredicateConfig.java
@@ -0,0 +1,62 @@
+/*
+ * 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.generatetxt.jaxb;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ *
+ * @author ASUS
+ */
+@XmlRootElement(name = "predicate-config")
+public class PredicateConfig {
+
+    private String xmlnsXsi;
+
+    private String xsiSchemaLocation;
+
+    private String xmlns;
+
+    private EntityList entityList;
+
+    @XmlAttribute(name = "xmlns:xsi")
+    public String getXmlnsXsi() {
+        return xmlnsXsi;
+    }
+
+    public void setXmlnsXsi(String xmlnsXsi) {
+        this.xmlnsXsi = xmlnsXsi;
+    }
+
+    @XmlAttribute(name = "xsi:schemaLocation")
+    public String getXsiSchemaLocation() {
+        return xsiSchemaLocation;
+    }
+
+    public void setXsiSchemaLocation(String xsiSchemaLocation) {
+        this.xsiSchemaLocation = xsiSchemaLocation;
+    }
+
+    @XmlAttribute(name = "xmlns")
+    public String getXmlns() {
+        return xmlns;
+    }
+
+    public void setXmlns(String xmlns) {
+        this.xmlns = xmlns;
+    }
+
+    @XmlElement(name = "entities")
+    public EntityList getEntityList() {
+        return entityList;
+    }
+
+    public void setEntityList(EntityList entityList) {
+        this.entityList = entityList;
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Validation.java b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Validation.java
new file mode 100644
index 0000000..5c8d4fe
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/jaxb/Validation.java
@@ -0,0 +1,50 @@
+/*
+ * 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.generatetxt.jaxb;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ *
+ * @author ASUS
+ */
+//@XmlRootElement(name = "validation")
+public class Validation {
+
+    private String fieldName;
+
+    private boolean activate;
+
+    private Assertion assertion;
+
+    @XmlAttribute(name = "field-name")
+    public String getFieldName() {
+        return fieldName;
+    }
+
+    public void setFieldName(String fieldName) {
+        this.fieldName = fieldName;
+    }
+
+    @XmlAttribute
+    public boolean isActivate() {
+        return activate;
+    }
+
+    public void setActivate(boolean activate) {
+        this.activate = activate;
+    }
+
+    @XmlElement
+    public Assertion getAssertion() {
+        return assertion;
+    }
+
+    public void setAssertion(Assertion assertion) {
+        this.assertion = assertion;
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/model/AlphaNumeriqueField.java b/generatetxt/src/main/java/com/megatim/generatetxt/model/AlphaNumeriqueField.java
new file mode 100644
index 0000000..1461c16
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/model/AlphaNumeriqueField.java
@@ -0,0 +1,103 @@
+/*
+ * 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.generatetxt.model;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Objects;
+import java.util.Set;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.UniqueConstraint;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.annotations.CreationTimestamp;
+import org.hibernate.annotations.UpdateTimestamp;
+
+/**
+ *
+ * @author ASUS
+ */
+@Entity
+@Getter
+@Setter
+@NoArgsConstructor
+@Table(uniqueConstraints = {
+    @UniqueConstraint(name = "UniquecodeColonneAndCodeTypeFichier", columnNames = {"codeColonne", "codeTypeFichier"})})
+public class AlphaNumeriqueField implements Serializable {
+
+    @GeneratedValue
+    @Id
+    private Long id;
+
+//    @ManyToOne(fetch = FetchType.LAZY)
+//    @JoinColumn(name = "codeTypeFichier")
+//    private Validateur validateur;
+
+    private String codeColonne;
+    
+    private String codeTypeFichier;
+
+    private int taille;
+
+    private int index;
+
+    private String typeDonnee;
+
+    @CreationTimestamp
+    private LocalDateTime dateCreation;
+
+    @UpdateTimestamp
+    private LocalDateTime dateMiseAJour;
+
+    @OneToMany(mappedBy = "alphaNumeriqueField")
+    private Set<MetaAlphaNumeriqueField> metaAlphaNumeriqueFields;
+
+    public AlphaNumeriqueField(String type, String codeColonne, int taille, int index) {
+//        this.validateur = validateur;
+        this.codeColonne = codeColonne;
+        this.taille = taille;
+        this.index = index;
+        this.typeDonnee = type;
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 7;
+//        hash = 31 * hash + Objects.hashCode(this.validateur.getCodeTypeFichier());
+        hash = 31 * hash + Objects.hashCode(this.codeColonne);
+        return hash;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        final AlphaNumeriqueField other = (AlphaNumeriqueField) obj;
+        if (!Objects.equals(this.codeTypeFichier, other.codeTypeFichier)) {
+            return false;
+        }
+        return Objects.equals(this.codeColonne, other.codeColonne);
+    }
+
+    @Override
+    public String toString() {
+        return codeTypeFichier + " - " + codeColonne;
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.java b/generatetxt/src/main/java/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.java
new file mode 100644
index 0000000..16d01ab
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.java
@@ -0,0 +1,67 @@
+/*
+ * 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.generatetxt.model;
+
+import com.megatim.generatetxt.pojo.FileToValidate;
+import com.megatimfx.common.schedules.Tache;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Transient;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.annotations.CreationTimestamp;
+import org.hibernate.annotations.UpdateTimestamp;
+
+/**
+ *
+ * @author ASUS
+ */
+@Entity
+@Getter
+@Setter
+@NoArgsConstructor
+public class MetaAlphaNumeriqueField implements Serializable {
+
+    @Id
+    @GeneratedValue
+    private Long id;
+
+    @ManyToOne
+    @JoinColumn(name = "alphaNumeriqueField_id")
+    private AlphaNumeriqueField alphaNumeriqueField;
+
+    @Transient
+    @ManyToOne
+    private FileToValidate fileToValidate;
+
+    @ManyToOne
+    @JoinColumn(name = "tache_id")
+    private Tache tache;
+
+//    @ManyToOne
+//    @JoinColumn(name = "configuration_conversion_id")
+//    private ConversionModel configurationConversion;
+    
+    @CreationTimestamp
+    private LocalDateTime dateCreation;
+    
+    @UpdateTimestamp
+    private LocalDateTime dateMiseAJour;
+
+    public MetaAlphaNumeriqueField(AlphaNumeriqueField field) {
+        this.alphaNumeriqueField = field;
+    }
+    
+    @Override
+    public String toString() {
+        return alphaNumeriqueField.getCodeColonne();
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/model/TruncatedElement.java b/generatetxt/src/main/java/com/megatim/generatetxt/model/TruncatedElement.java
new file mode 100644
index 0000000..686e285
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/model/TruncatedElement.java
@@ -0,0 +1,84 @@
+/*
+ * 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.generatetxt.model;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Transient;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.annotations.CreationTimestamp;
+import org.hibernate.annotations.UpdateTimestamp;
+
+/**
+ *
+ * @author ASUS
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+public class TruncatedElement implements Serializable {
+
+    @Id
+    @GeneratedValue
+    private Long id;
+
+    private String codeTypeFichier;
+
+    private String codeColonne;
+
+    @Column(length = 1000)
+    private String initialData;
+
+    @Column(length = 1000)
+    private String finalData;
+    
+    private int tailleAttendue;
+    
+    private int tailleTrouvee;
+    
+    private String fileName;
+
+    private int lineNumber;
+
+    private LocalDateTime dateAction;
+
+    private LocalDate localDateAction;
+
+    @Transient
+    private String displayDate;
+
+    @CreationTimestamp
+    private LocalDateTime dateCreation;
+
+    @UpdateTimestamp
+    private LocalDateTime dateMiseAJour;
+
+    public TruncatedElement(String codeTypeFichier, String codeColonne, String initialData, String finalData, String fileName,
+            LocalDateTime dateAction,int ligne,int tailleA,int tailleT) {
+
+        this.codeTypeFichier = codeTypeFichier;
+        this.codeColonne = codeColonne;
+        this.initialData = initialData;
+        this.finalData = finalData;
+        this.fileName = fileName;
+        this.dateAction = dateAction;
+        this.lineNumber = ligne;
+        this.tailleAttendue = tailleA;
+        this.tailleTrouvee = tailleT;
+
+    }
+
+    @Override
+    public String toString() {
+        return "TruncatedElement{" + "codeTypeFichier=" + codeTypeFichier + ", codeColonne=" + codeColonne + ", initialData=" + initialData + ", finalData=" + finalData + ", fileName=" + fileName + '}';
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/model/TypeFichier.java b/generatetxt/src/main/java/com/megatim/generatetxt/model/TypeFichier.java
new file mode 100644
index 0000000..22ecd7e
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/model/TypeFichier.java
@@ -0,0 +1,90 @@
+/*
+ * 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.generatetxt.model;
+
+import com.megatimfx.common.validationgroups.ViewFormValidationGroup;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Objects;
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.OneToOne;
+import javax.validation.constraints.NotEmpty;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.CreationTimestamp;
+import org.hibernate.annotations.UpdateTimestamp;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Entity
+@Getter
+@Setter
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class TypeFichier implements Serializable {
+
+    @Id
+    @NotEmpty(message = "Le code du type de fichier est obligatoire", groups = {ViewFormValidationGroup.class})
+    private String code;
+
+    @NotEmpty(message = "Le libellé du type de fichier est obligatoire", groups = {ViewFormValidationGroup.class})
+    @XmlTransient
+    private String libelle;
+
+    @NotEmpty(message = "Le code du participant est obligatoire", groups = {ViewFormValidationGroup.class})
+    @XmlTransient
+    private String codeParticipant;
+
+    @CreationTimestamp
+    @XmlTransient
+    private LocalDateTime dateCreation;
+
+    @UpdateTimestamp
+    @XmlTransient
+    private LocalDateTime dateMiseAJour;
+
+    @Override
+    public String toString() {
+        return this.getCode();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+
+        if (this == obj) {
+            return true;
+        }
+
+        if (obj == null) {
+            return false;
+        }
+        if (!(obj instanceof TypeFichier)) {
+            return false;
+        }
+        final TypeFichier other = (TypeFichier) obj;
+
+        if (this.getCode() != null && !this.getCode().equals(other.getCode())) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 5;
+        hash = 73 * hash + Objects.hashCode(this.code);
+        hash = 73 * hash + Objects.hashCode(this.libelle);
+        return hash;
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/pojo/Constantes.java b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/Constantes.java
new file mode 100644
index 0000000..6a9037f
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/Constantes.java
@@ -0,0 +1,29 @@
+/*
+ * 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.generatetxt.pojo;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Constantes {
+
+    public final static String LIBELLE_TAILLE = "taille";
+    public final static String LIBELLE_SEPARATEUR_DATE = "separateurDate";
+    public final static String LIBELLE_INDEX = "index";
+    public final static String LIBELLE_TYPE_DONNEE = "typeDonnee";
+    public final static String LIBELLE_TAILLE_PARTIE_DECIMALE = "taillePartieDecimale";
+    public final static String LIBELLE_SEPARATEUR_DECIMAL = "separateurDecimal";
+    public final static String LIBELLE_LIGNE = "ligne";
+    public final static String LIBELLE_FORMAT_DATE = "formatDate";
+    public final static String LIBELLE_DECIMAL = "DECIMAL";
+    public final static String LIBELLE_DATE = "DATE";
+    public final static String LIBELLE_NUMERIQUE = "NUMERIQUE";
+    public final static String LIBELLE_ALPHANUMERIQUE = "ALPHANUMERIQUE";
+
+    public static final String FIELD_NAME = "field-name";
+    public static final String EQUAL_PARAM = "equalParam";
+    public static final String ERROR_CODE = "error-code";
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/pojo/Delimiteur.java b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/Delimiteur.java
new file mode 100644
index 0000000..ef631f8
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/Delimiteur.java
@@ -0,0 +1,28 @@
+/*
+ * 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.generatetxt.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Getter
+@Setter
+@AllArgsConstructor
+public class Delimiteur {
+
+    private String code;
+
+    private String libelle;
+
+    @Override
+    public String toString() {
+        return this.getLibelle();
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidate.java b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidate.java
new file mode 100644
index 0000000..8b691d1
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidate.java
@@ -0,0 +1,49 @@
+package com.megatim.generatetxt.pojo;
+
+import com.megatim.generatetxt.constraints.FileToValidateDelimiterConstraint;
+import com.megatim.generatetxt.enums.DataType;
+import com.megatim.generatetxt.model.TypeFichier;
+import com.megatimfx.common.validationgroups.ViewFormValidationGroup;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Getter
+@Setter
+@FileToValidateDelimiterConstraint(groups = {ViewFormValidationGroup.class})
+public class FileToValidate {
+
+    @NotEmpty(message = "Le fichier à valider est obligatoire", groups = {ViewFormValidationGroup.class})
+    //@Pattern(regexp="(.+\\.csv)|(.+\\.xlsx)|(.+\\.xls|.+\\.txt)", flags = Flag.CASE_INSENSITIVE, message="Bien vouloir sélectionner un fichier csv, xlsx, xls ou txt" , groups = {ViewFormValidationGroup.class})
+    private String filePath;
+
+    @NotNull(message = "Le typefichier est obligatoire", groups = {ViewFormValidationGroup.class})
+    private TypeFichier typeFichier;
+
+    private Delimiteur delimiteurLigne;
+
+    private Delimiteur delimiteurColonne;
+
+    private String txtFilePath;
+    
+    private String errorFilePath;
+
+    @NotNull(message = "Le format du fichier de données est obligatoire", groups = {ViewFormValidationGroup.class})
+    private DataType dataType;
+
+    private boolean headerPresent;
+    
+    private boolean strictValidation;
+    
+    
+    @Override
+    public String toString() {
+        return filePath+":"+typeFichier.getCode()+":"+dataType.getDataType();
+    }
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidateDescription.java b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidateDescription.java
new file mode 100644
index 0000000..4565e59
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/FileToValidateDescription.java
@@ -0,0 +1,39 @@
+/*
+ * 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.generatetxt.pojo;
+
+import java.io.File;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * Classe qui sert à importer les données des fichiers à transférer
+ *
+ * @author STEPHANIE
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class FileToValidateDescription {
+
+    //Fichier duquel seront extraits les données
+    private File file;
+
+    //délimiteur de ligne
+    private String rowDelimiter;
+
+    //délimiteur de colonne
+    private String columnDelimiter;
+
+    private String codeTypeFichier;
+
+    private String validatorPath;
+
+    private String outputDir;
+
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/pojo/ParseResult.java b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/ParseResult.java
new file mode 100644
index 0000000..dc95d17
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/ParseResult.java
@@ -0,0 +1,22 @@
+/*
+ * 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.generatetxt.pojo;
+
+import java.io.File;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author ASUS
+ */
+@Getter
+@Setter
+@AllArgsConstructor
+public class ParseResult {
+    private boolean result;
+    private File txtFile;
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/pojo/ResultFileParsing.java b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/ResultFileParsing.java
new file mode 100644
index 0000000..c4b6d27
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/pojo/ResultFileParsing.java
@@ -0,0 +1,21 @@
+/*
+ * 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.generatetxt.pojo;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ *
+ * @author ASUS
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+public class ResultFileParsing {
+    private String[] finalColumnsTableLine;
+    private boolean columnTruncated;
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/utilities/ParserUtils.java b/generatetxt/src/main/java/com/megatim/generatetxt/utilities/ParserUtils.java
new file mode 100644
index 0000000..cbcf519
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/utilities/ParserUtils.java
@@ -0,0 +1,358 @@
+/*
+ * 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.generatetxt.utilities;
+
+import java.io.BufferedWriter;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.dhatim.fastexcel.reader.Cell;
+import org.dhatim.fastexcel.reader.CellType;
+import static org.dhatim.fastexcel.reader.CellType.BOOLEAN;
+import static org.dhatim.fastexcel.reader.CellType.EMPTY;
+import static org.dhatim.fastexcel.reader.CellType.NUMBER;
+import static org.dhatim.fastexcel.reader.CellType.STRING;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ParserUtils {
+    //Nombre be balise <entity> dans le validateur XML
+
+    private static final int ENTITY_LIST_SIZE = 2;
+
+    private ParserUtils() {
+
+    }
+
+    public static Map<Integer, Map> getValidateurElements(String validatorPath) throws Exception {
+        byte[] bytes = Files.readAllBytes(new File(validatorPath).toPath());
+        Document doc = intialize(bytes);
+        NodeList entityList = doc.getElementsByTagName("entity"); //Liste des noeud <entity>
+
+        //Map qui stocke le champ à une position, ainsi que les caractéristiques de champ(typeDonnee, taille, index de debut d'extraction)
+        Map<Integer, Map> mapParams = new HashMap<>();
+
+        int position = 0;
+
+        if (entityList.getLength() == ENTITY_LIST_SIZE) {
+
+            //Liste des noeud de type <validation> du deuximème Noeud <entity>
+            NodeList entityFileLineChildren = entityList.item(1).getChildNodes();
+
+            //parcours de la balise <entity> pour récupérer ses enfants
+            for (int i = 0; i < entityFileLineChildren.getLength(); i++) {
+
+                if (entityFileLineChildren.item(i) != null && entityFileLineChildren.item(i).getAttributes() != null) {
+
+                    //balise <validation>
+                    Node validation = entityFileLineChildren.item(i);
+
+                    if (validation != null) {
+
+                        position++;
+
+                        //Liste des assertions de la balise <validation>
+                        NodeList assertions = validation.getChildNodes();
+
+                        for (int r = 0; r < assertions.getLength(); r++) {
+
+                            Node assertion = assertions.item(r);
+
+                            Map<String, String> mapAttributes = new HashMap<>();
+
+                            if (assertion != null && assertion.getAttributes() != null) {
+
+                                //Les attributs de la balise <assertion>
+                                NamedNodeMap attributesAssertion = assertion.getAttributes();
+
+                                for (int k = 0; k < attributesAssertion.getLength(); k++) {
+
+                                    String nodeValue = attributesAssertion.item(k).getNodeValue();
+                                    String nodeName = attributesAssertion.item(k).getNodeName();
+
+                                    if (nodeName.equals("error-code")) {
+                                        mapAttributes.put(nodeName, nodeValue);
+                                        break;
+                                    }
+                                }
+
+                                //Liste des balises <param-value> de la balise <assertion>
+                                NodeList params = assertion.getChildNodes();
+
+                                for (int j = 0; j < params.getLength(); j++) {
+
+                                    if (params.item(j) != null && params.item(j).getAttributes() != null) {
+
+                                        //Les attributs de la balise <param-value>
+                                        NamedNodeMap attributesParamValue = params.item(j).getAttributes();
+
+                                        for (int k = 0; k < attributesParamValue.getLength(); k++) {
+
+                                            String nodeValue = attributesParamValue.item(k).getNodeValue();
+                                            String nextNodeValue = attributesParamValue.item(++k).getNodeValue();
+                                            mapAttributes.put(nodeValue, nextNodeValue);
+
+                                        }
+
+                                        mapParams.put(position, mapAttributes);
+
+                                    }
+
+                                }
+
+                            }
+
+                        }
+
+                    }
+
+                }
+
+            }
+
+        }
+
+        return mapParams;
+
+    }
+
+    /**
+     * Méthode permettant de convertir la données contenu dans une cellule excel
+     * en chaîne de caractères
+     *
+     * @param cell
+     * @return
+     */
+    public static String getCellValueAsString(Cell cell) {
+
+        String val = "";
+
+        if (cell != null) {
+
+            CellType cellType = cell.getType();
+
+            switch (cellType) {
+
+                case EMPTY:
+                    break;
+
+                case STRING:
+
+                    if (!cell.getText().equals("null")) {
+
+                        val = cell.getText().replaceAll("\\p{Cntrl}", "");
+
+                    }
+
+                    break;
+
+                case NUMBER:
+
+                    val = cell.asNumber().toPlainString();
+
+                    if (val.equals("null")) {
+
+                    }
+
+                    break;
+
+                case BOOLEAN:
+
+                    val = String.valueOf(cell.asBoolean());
+
+                    if (val.equals("null")) {
+
+                    }
+
+                    break;
+
+                default:
+                    break;
+
+            }
+
+        }
+
+        return val;
+
+    }
+
+    /**
+     * Méthode qui retire le caractère retour charriot dans une chaîne
+     *
+     * @param str
+     * @return
+     */
+    public static String removeReturnCharriot(String str) {
+
+        String[] tab = str.split("\n");
+
+        String result = "";
+
+        for (String s : tab) {
+
+            result += s;
+        }
+
+        return result;
+
+    }
+
+    /**
+     * Méthode utilitaire pour extraire les données dans un fichier xml
+     *
+     * @param array
+     * @return
+     * @throws Exception
+     */
+    private static Document intialize(byte[] array) throws Exception {
+
+        /**
+         * Défini un factory qui aide à obtenir un parseur qui produit un arbre
+         * d'objets DOM à partir d'un docuent XML.
+         */
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+        /**
+         * création d'un objet du builder pour parser le fichier XML.
+         */
+        DocumentBuilder db = dbf.newDocumentBuilder();
+
+        Document doc = db.parse(new ByteArrayInputStream(array));
+
+        doc.getDocumentElement().normalize();
+
+        return doc;
+    }
+
+    /**
+     * Méthode pour obtenir l'objet de typr char correspondant à chaque
+     * délimiteur
+     *
+     * @param delimiteur
+     * @return
+     */
+    public static char characterOfDelimiteur(String delimiteur) {
+        char character;
+
+        switch (delimiteur) {
+            case "\\t":
+                character = '\t';
+                break;
+            case "\\n":
+                character = '\n';
+                break;
+            case "":
+                character = '\0';
+                break;
+            default:
+                character = delimiteur.charAt(0);
+        }
+
+        return character;
+    }
+
+    /**
+     * Méthode permettant d'encoder une chaîne de caractères
+     *
+     * @param datas : tableau de String à encoder
+     * @param charset : encodage à utiliser
+     * @return
+     */
+    public static String[] encodeStrings(String[] datas, Charset charset) {
+        String[] encodedStrings = new String[datas.length];
+
+        for (int i = 0; i < encodedStrings.length; i++) {
+            byte[] bytesOfString = datas[i].getBytes();
+            encodedStrings[i] = new String(bytesOfString, charset);
+
+        }
+        return encodedStrings;
+    }
+
+    /**
+     * Méthode qui extrait une sous-chaîne dans une chaîne de caractères en
+     * utilisant un délimiteur
+     *
+     * @param line : chaîne mère à séparer
+     * @param character : délimiteur de chaîne
+     * @return : retourne un tableau contenant les châines extraites
+     */
+    public static String[] splitIntoColumns(String line, char character) {
+
+        int count = 0;
+
+        for (int i = 0; i < line.length(); i++) {
+
+            if (line.charAt(i) == character) {
+                count++;
+            }
+
+        }
+
+        String[] columns = new String[count + 1];
+
+        StringBuilder builder = new StringBuilder(0);
+
+        count = 0;
+
+        for (int i = 0; i < line.length(); i++) {
+
+            if (line.charAt(i) == character) {
+
+                columns[count] = builder.toString();
+
+                builder = new StringBuilder(0);
+
+                count++;
+
+            } else {
+
+                builder.append(line.charAt(i));
+            }
+
+        }
+
+        columns[count] = builder.toString();
+
+        return columns;
+    }
+
+    /**
+     * Méthode qui écrit dans un fichier
+     *
+     * @param finalColumnsTableLine : liste des châines à écrire dans le fichier
+     * @param bufferWriter : ressource permettant d'écrire dans le fichier
+     */
+    public static void writeToFile(String[] finalColumnsTableLine, final BufferedWriter bufferWriter) throws IOException {
+
+        //Ecriture dans le fichier output
+        StringBuilder safeLineBuilder = new StringBuilder(0);
+
+        for (String s : finalColumnsTableLine) {
+            safeLineBuilder.append(s);
+        }
+
+        String safeLine = safeLineBuilder.toString();
+
+        if (safeLine.length() > 0) {
+
+            bufferWriter.write(safeLine + System.lineSeparator());
+
+        }
+    }
+}
diff --git a/generatetxt/src/main/java/com/megatim/generatetxt/utilities/Utilities.java b/generatetxt/src/main/java/com/megatim/generatetxt/utilities/Utilities.java
new file mode 100644
index 0000000..4816218
--- /dev/null
+++ b/generatetxt/src/main/java/com/megatim/generatetxt/utilities/Utilities.java
@@ -0,0 +1,46 @@
+/*
+ * 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.generatetxt.utilities;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.nio.charset.UnsupportedCharsetException;
+import org.apache.tika.parser.txt.CharsetDetector;
+import org.apache.tika.parser.txt.CharsetMatch;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Utilities {
+     /**
+     * Méthode qui récupère l'encodage d'un fichier
+     *
+     * @param file : Fichier dont on veut connaître l'encodage
+     * @return : retourne l'encodage le plus probable
+     * @throws FileNotFoundException
+     * @throws IOException
+     */
+    public static Charset getCharset(File file) throws FileNotFoundException, IOException {
+        try ( InputStream stream = new FileInputStream(file);  InputStream input = new BufferedInputStream(stream);) {
+            CharsetDetector charsetDetector = new CharsetDetector();
+
+            charsetDetector.setText(input);
+
+            CharsetMatch charsetMatch = charsetDetector.detect();
+            String charsetName = charsetMatch != null ? charsetMatch.getName() : "";
+
+            return Charset.forName(charsetName);
+
+        } catch (UnsupportedCharsetException ex) {
+            return Charset.forName("Cp850");
+        }
+    }
+}
diff --git a/generatetxt/src/main/resources/predicatelogic-engine.xml b/generatetxt/src/main/resources/predicatelogic-engine.xml
new file mode 100644
index 0000000..30ca6c2
--- /dev/null
+++ b/generatetxt/src/main/resources/predicatelogic-engine.xml
@@ -0,0 +1,1665 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<predicate-engine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                  xsi:schemaLocation="http://www.leadware.net/predicatelogic-engine ../xsd/predicatelogic-engine.xsd"
+                  xmlns="http://www.leadware.net/predicatelogic-engine">
+
+    <!-- Définition des connecteurs -->
+    <connectors>
+
+        <connector name="not">
+            <invoke method="not"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="notParam" type="Boolean" />
+        </connector>
+
+        <connector name="or">
+            <invoke method="or"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="orParam1" type="Boolean" />
+            <param name="orParam2" type="Boolean" />
+        </connector>
+
+        <connector name="and">
+            <invoke method="and"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="andParam1" type="Boolean" />
+            <param name="andParam2" type="Boolean" />
+        </connector>
+
+        <connector name="implies">
+            <invoke method="implies"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="impliesAssumption" type="Boolean" />
+            <param name="impliesConclusion" type="Boolean" />
+        </connector>
+
+    </connectors>
+
+    <!-- Définition des prédicats -->
+    <predicates>
+        <predicate name="inValues">
+            <invoke  method="inValues" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="values" type="String"/>
+            <param name="fieldToCheck" type="String" />
+        </predicate>
+             
+        <predicate name="ifTypeFichier">
+            <invoke  method="ifTypeFichier" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="index" type="int"/>
+            <param name="taille" type="int"/>
+            <param name="typeDonnee" type="String"/>
+            <param name="ligne" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="separateurDate" type="String"/>
+            <param name="taillePartieDecimale" type="String"/>
+            <param name="separateurDecimal" type="String"/>
+        </predicate>
+        
+        <predicate name="ifTypeFichierFileName">
+            <invoke  method="ifTypeFichierFileName" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="prefixe" type="String"/>
+            <param name="type_suffixe" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="fileName" type="String"/>
+        </predicate>
+        
+        <predicate name="ifVersion">
+            <invoke  method="ifVersion" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="version" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+        </predicate>
+        
+        <predicate name="ifCodeRemise">
+            <invoke  method="ifCodeRemise" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="codeRemise" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+        </predicate>
+        
+        <predicate name="ifNumber">
+            <invoke  method="ifNumber" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="nbFiles" type="String"/>
+        </predicate>
+        
+        <predicate name="ifDate">
+            <invoke  method="ifDate" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="date" type="String"/>
+            <param name="format" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="fileName" type="String" />
+        </predicate>
+        
+        <predicate name="ifCodeAgentOrCodeParticipant">
+            <invoke  method="ifCodeAgentOrCodeParticipant" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="code" type="String"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+        </predicate>
+        
+        <predicate name="ifTierce">
+            <invoke  method="ifTierce" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="minValue" type="int" />
+            <param-value name="maxValue" type="int" />
+        </predicate>
+        
+        <predicate name="ifDecimal">
+            <invoke  method="ifDecimal" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+            <param-value name="typeDonnee" type="String" />
+            <param name="ligne" type="String"/>
+            <param-value name="decimalPartMaxLength" type="int" />
+            <param-value name="separator" type="char"/>
+        </predicate>
+        
+        <predicate name="equal">
+            <invoke method="equal" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="equalParam" type="Object" />
+            <param name="equalValue" type="Object" />
+        </predicate>
+         
+        <predicate name="empty">
+            <invoke method="empty"
+                    class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="emptyParam" type="Object" />
+            
+        </predicate>
+        <predicate name="equal">
+            <invoke method="equal"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="equalParam" type="Object" />
+            <param name="equalValue" type="Object" />
+        </predicate>
+
+        <predicate name="empty">
+            <invoke method="empty"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="emptyParam" type="Object" />
+        </predicate>
+
+        <predicate name="notEmptyValues">
+            <invoke method="notEmptyValues"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="notEmptyValuesParam" type="Collection" />
+        </predicate>
+
+        <predicate name="emptyValues">
+            <invoke method="emptyValues"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="emptyValuesParam" type="Collection" />
+        </predicate>
+
+        <predicate name="propertyReferenceEntry">
+            <invoke method="propertyReferenceEntry"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entityName" type="String" />
+            <param name="propertyName" type="String" />
+            <param name="propertyValue" type="Object" />
+        </predicate>
+
+        <predicate name="propertiesReferenceEntry">
+            <invoke method="propertiesReferenceEntry"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+        </predicate>
+
+        <predicate name="dateFormat">
+            <invoke method="dateFormat"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="dateValue" type="String" />
+            <param name="dateFormat" type="String" />
+        </predicate>
+
+        <predicate name="csvEntry">
+            <invoke method="csvEntry"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entryValue" type="String" />
+            <param name="csvValues" type="String" />
+        </predicate>
+
+        <predicate name="singleton">
+            <invoke method="singleton"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+        </predicate>
+
+        <predicate name="singletonValue">
+            <invoke method="singletonValue"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="singletonValue" type="Object" />
+        </predicate>
+
+        <predicate name="singleOccurenceValue">
+            <invoke method="singleOccurenceValue"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="occurenceValue" type="Object" />
+        </predicate>
+
+        <predicate name="singleOccurenceValueByGroup">
+            <invoke method="singleOccurenceValueByGroup"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="csvGroupPropertiesNames" type="String" />
+            <param name="occurenceEntity" type="Object" />
+            <param name="occurenceValue" type="Object" />
+        </predicate>
+
+        <predicate name="sum">
+            <invoke method="sum"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="sumValue" type="java.math.BigDecimal" />
+        </predicate>
+
+        <predicate name="size">
+            <invoke method="size"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="sizeValue" type="java.math.BigDecimal" />
+        </predicate>
+
+        <predicate name="greater">
+            <invoke method="greater"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="greaterValue" type="Object" />
+            <param name="greaterLimit" type="Object" />
+        </predicate>
+
+        <predicate name="lower">
+            <invoke method="lower"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="lowerValue" type="Object" />
+            <param name="lowerLimit" type="Object" />
+        </predicate>
+
+        <predicate name="ribChecker">
+            <invoke method="ribChecker"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="ribValue" type="String" />
+        </predicate>
+
+        <predicate name="systacCountryExist">
+            <invoke  method="systacCountryExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="countryCode" type="String"/>
+        </predicate>
+
+        <predicate name="posteComptableExist">
+            <invoke  method="posteComptableExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codePosteComptable" type="String"/>
+        </predicate>
+                
+        <predicate name="systacBankExist">
+            <invoke  method="systacBankExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="bankCode" type="String"/>
+        </predicate>
+
+        <predicate name="systacAgencyExist">
+            <invoke  method="systacAgencyExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="agencyCode" type="String"/>
+        </predicate>
+                
+        <predicate name="systacAgencyBankExist">
+            <invoke  method="systacAgencyBankExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="bankCode" type="String"/>
+            <param name="agencyCode" type="String"/>
+        </predicate>		
+		
+        <predicate name="sygmaParticipantCodeBicExist">
+            <invoke  method="sygmaParticipantCodeBicExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBicParticipant" type="String"/>
+        </predicate>
+
+        <predicate name="sygmaParticipantCodeBicWithPropertiesExist">
+            <invoke  method="sygmaParticipantCodeBicWithPropertiesExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBicParticipant" type="String"/>
+            <param name="properties" type="Map"/>
+        </predicate>
+
+        <predicate name="sygmaParticipantNumeroCompteExist">
+            <invoke  method="sygmaParticipantNumeroCompteExist" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroCompteParticipant" type="String"/>
+        </predicate>
+
+        <predicate name="sygmaParticipantNumeroCompteWithPropertiesExist">
+            <invoke  method="sygmaParticipantNumeroCompteWithPropertiesExist" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroCompteParticipant" type="String"/>
+            <param name="properties" type="Map"/>
+        </predicate>
+
+        <predicate name="ifReplayQueueInDataExist">
+            <invoke  method="ifReplayQueueInDataExist" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroReference" type="String"/>
+            <param name="numeroBordereauVirement" type="String"/>
+            <param name="codeEnregistrement"   type="String"/>
+            <param name="codeValeur"  type="String"/>
+        </predicate>
+				 
+        <predicate name="ifMt103001Message">
+            <invoke  method="ifMt103001Message" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeTypeMessage" type="String"/>
+            <param name="codeTypeTransaction" type="String"/>
+        </predicate>
+                 
+        <predicate name="ifAdmin">
+            <invoke  method="ifAdmin" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="loginValue" type="String"/>
+            <param name="passwordValue" type="String"/>
+        </predicate>
+                 
+        <predicate name="ifReplayQueueInDataExistSystac">
+            <invoke  method="ifReplayQueueInDataExistSystac" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroOperation" type="String"/>
+            <param name="datePresentation" type="String"/>
+            <param name="codeValeur"  type="String"/>
+            <param name="codeEnregistrement"   type="String"/>                       
+        </predicate>
+                 
+        <predicate name="ifReplayQueueInDataExistSygma">
+            <invoke  method="ifReplayQueueInDataExistSygma" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeReference" type="String"/>
+            <param name="datePresentation" type="String"/>                                              
+        </predicate>    
+                 
+        <predicate name="ifBankIsNotInBlackList">
+            <invoke  method="ifBankIsNotInBlackList" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBanqueDestinataire" type="String"/>
+        </predicate>
+                 
+        <predicate name="ifParticipantIsNotInBlackList">
+            <invoke  method="ifParticipantIsNotInBlackList" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBicDestinataireSygma" type="String"/>
+        </predicate>      
+                 
+        <predicate name="checkReconciliationItemExistence">
+            <invoke  method="checkReconciliationItemExistence" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroReference" type="String"/>
+            <param name="montant" type="String"/>
+            <param name="datePresentation"   type="String"/>                        
+        </predicate>  
+                
+        <predicate name="queueInAnnulationCalendarValidation">
+            <invoke method="queueInAnnulationCalendarValidation"
+                            class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+        </predicate>
+        <predicate name="uniqueCodeSystem">
+            <invoke  method="uniqueCodeSystem" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeSystem" type="String"/>
+        </predicate>
+        <predicate name="justOneOperation">
+            <invoke  method="justOneOperation" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroBonVirement" type="String"/>
+        </predicate>
+    </predicates>
+
+    <!-- Définition des assertions : ce sont des compositions de connecteurs, 
+    predicats et d'autres assertions -->
+    <asserts>
+        <assert name="inValues">
+            <param name="values" type="String"/>
+            <param-value name="fieldToCheck" type="String" />
+            <formula predicate-ref="inValues">
+                <param name="values" assert-param-ref="values" />
+                <param name="fieldToCheck" assert-param-ref="fieldToCheck" />
+            </formula>
+        </assert>
+            
+        <assert name="ifTypeFichier">
+            <param name="index" type="int"/>
+            <param name="taille" type="int"/>
+            <param name="typeDonnee" type="String"/>
+            <param name="ligne" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="separateurDate" type="String"/>
+            <param-value name="taillePartieDecimale" type="int" />
+            <param-value name="separateurDecimal" type="char"/>
+            <formula predicate-ref="ifTypeFichier">
+                <param name="index" assert-param-ref="index" />
+                <param name="taille" assert-param-ref="taille" />
+                <param name="typeDonnee" assert-param-ref="typeDonnee" />
+                <param name="ligne" assert-param-ref="ligne" />
+                <param name="formatDate" assert-param-ref="formatDate" />
+                <param name="separateurDate" assert-param-ref="separateurDate" />
+                <param name="taillePartieDecimale" assert-param-ref="taillePartieDecimale" />
+                <param name="separateurDecimal" assert-param-ref="separateurDecimal" />
+                    
+            </formula>
+        </assert>
+            
+        <assert name="ifTypeFichierFileName">
+            <param name="prefixe" type="String"/>
+            <param name="type_suffixe" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="fileName" type="String"/>
+            <formula predicate-ref="ifTypeFichierFileName">
+                <param name="prefixe" assert-param-ref="prefixe" />
+                <param name="type_suffixe" assert-param-ref="type_suffixe" />
+                <param name="formatDate" assert-param-ref="formatDate" />
+                <param name="fileName" assert-param-ref="fileName" />
+            </formula>
+        </assert>
+            
+        <assert name="ifVersion">
+            <param name="version" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+            <formula predicate-ref="ifVersion">
+                <param name="version" assert-param-ref="version" />
+                <param name="nbPosition" assert-param-ref="nbPosition" />
+                <param name="typeCharactere" assert-param-ref="typeCharactere" />
+            </formula>
+        </assert>
+                
+        <assert name="ifCodeRemise">
+            <param name="codeRemise" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+            <formula predicate-ref="ifCodeRemise">
+                <param name="codeRemise" assert-param-ref="codeRemise" />
+                <param name="nbPosition" assert-param-ref="nbPosition" />
+                <param name="typeCharactere" assert-param-ref="typeCharactere" />
+            </formula>
+        </assert>
+                
+        <assert name="ifNumber">
+            <param name="nbFiles" type="String"/>
+            <formula predicate-ref="ifNumber">
+                <param name="nbFiles" assert-param-ref="nbFiles" />
+            </formula>
+        </assert>
+                
+                
+        <assert name="ifDate">
+            <param name="date" type="String"/>
+            <param name="format" type="String"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <formula predicate-ref="ifDate">
+                <param name="date" assert-param-ref="date" />
+                <param name="format" assert-param-ref="format" />
+                <param name="index" assert-param-ref="index" />
+                <param name="fileName" assert-param-ref="fileName" />
+            </formula>
+        </assert>
+                
+        <assert name="ifCodeAgentOrCodeParticipant">
+            <param name="code" type="String"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+            <formula predicate-ref="ifCodeAgentOrCodeParticipant">
+                <param name="code" assert-param-ref="code" />
+                <param name="fileName" assert-param-ref="fileName" />
+                <param name="taille" assert-param-ref="taille" />
+                <param name="index" assert-param-ref="index" />
+            </formula>
+        </assert>
+
+         
+        <assert name="ifTierce">
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="minValue" type="int" />
+            <param-value name="maxValue" type="int" />
+            <formula predicate-ref="ifTierce">
+                <param name="fileName" assert-param-ref="fileName" />
+                <param name="minValue" assert-param-ref="minValue" />
+                <param name="maxValue" assert-param-ref="maxValue" />
+                <param name="index" assert-param-ref="index" />
+            </formula>
+        </assert>
+              
+        <assert name="ifDecimal">
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+            <param-value name="typeDonnee" value="String" />
+            <param name="ligne" type="String"/>
+            <param-value name="decimalPartMaxLength" type="int" />
+            <param-value name="separator" type="char" />
+            <formula predicate-ref="ifDecimal">
+                <param name="index" assert-param-ref="index" />
+                <param name="taille" assert-param-ref="taille" />
+                <param name="typeDonnee" assert-param-ref="typeDonnee" />
+                <param name="ligne" assert-param-ref="ligne"/>
+                <param name="decimalPartMaxLength" assert-param-ref="decimalPartMaxLength" />
+                <param name="separator" assert-param-ref="separator" />
+            </formula>
+        </assert>
+              
+        <assert name="equal">
+            <param name="equalValue" type="Object" />
+            <param name="equalParam" type="Object" />
+            <formula predicate-ref="equal">
+                <param name="equalValue" assert-param-ref="equalValue" />
+                <param name="equalParam" assert-param-ref="equalParam" />
+            </formula>
+        </assert>
+
+        <assert name="empty">
+            <param name="emptyParam" type="Object" />
+            <formula predicate-ref="empty">
+                <param name="emptyParam" assert-param-ref="emptyParam" />
+            </formula>
+        </assert>
+
+        <!-- Est vrai si toutes les valeurs sont non vides -->
+        <assert name="notEmptyValues">
+            <param name="notEmptyValuesParam" type="Object" />
+            <formula predicate-ref="notEmptyValues">
+                <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParam" />
+            </formula>
+        </assert>
+
+        <!-- Est vrai si toutes les valeurs sont vides -->
+        <assert name="emptyValues">
+            <param name="emptyValuesParam" type="Object" />
+            <formula predicate-ref="emptyValues">
+                <param name="emptyValuesParam" assert-param-ref="emptyValuesParam" />
+            </formula>
+        </assert>
+
+        <assert name="propertyReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="propertyName" type="String" />
+            <param name="propertyValue" type="Object" />
+            <formula predicate-ref="propertyReferenceEntry">
+                <param name="entityName" assert-param-ref="entityName" />
+                <param name="propertyName" assert-param-ref="propertyName" />
+                <param name="propertyValue" assert-param-ref="propertyValue" />
+            </formula>
+        </assert>
+
+        <assert name="propertiesReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="propertiesReferenceEntry">
+                <param name="entityName" assert-param-ref="entityName" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert>
+
+        <assert name="dateFormat">
+            <param name="dateValue" type="String" />
+            <param name="dateFormat" type="String" />
+            <formula predicate-ref="dateFormat">
+                <param name="dateValue" assert-param-ref="dateValue" />
+                <param name="dateFormat" assert-param-ref="dateFormat" />
+            </formula>
+        </assert>
+
+        <assert name="csvEntry">
+            <param name="entryValue" type="String" />
+            <param name="csvValues" type="String" />
+            <formula predicate-ref="csvEntry">
+                <param name="entryValue" assert-param-ref="entryValue" />
+                <param name="csvValues" assert-param-ref="csvValues" />
+            </formula>
+        </assert>
+
+        <assert name="singleton">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <formula predicate-ref="singleton">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+            </formula>
+        </assert>
+
+        <assert name="singletonValue">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="singletonValue" type="Object" />
+            <formula predicate-ref="singletonValue">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="singletonValue" assert-param-ref="singletonValue" />
+            </formula>
+        </assert>
+
+        <assert name="singleOccurenceValue">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="occurenceValue" type="Object" />
+            <formula predicate-ref="singleOccurenceValue">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="occurenceValue" assert-param-ref="occurenceValue" />
+            </formula>
+        </assert>
+
+        <assert name="singleOccurenceValueByGroup">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="csvGroupPropertiesNames" type="String" />
+            <param name="occurenceEntity" type="Object" />
+            <param name="occurenceValue" type="Object" />
+            <formula predicate-ref="singleOccurenceValueByGroup">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="csvGroupPropertiesNames" assert-param-ref="csvGroupPropertiesNames" />
+                <param name="occurenceEntity" assert-param-ref="occurenceEntity" />
+                <param name="occurenceValue" assert-param-ref="occurenceValue" />
+            </formula>
+        </assert>
+
+        <assert name="sum">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="sumValue" type="java.math.BigDecimal" />
+            <formula predicate-ref="sum">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="sumValue" assert-param-ref="sumValue" />
+            </formula>
+        </assert>
+
+        <assert name="size">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="sizeValue" type="java.math.BigDecimal" />
+            <formula predicate-ref="size">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="sizeValue" assert-param-ref="sizeValue" />
+            </formula>
+        </assert>
+
+        <assert name="greater">
+            <param name="greaterValue" type="Object" />
+            <param name="greaterLimit" type="Object" />
+            <formula predicate-ref="greater">
+                <param name="greaterValue" assert-param-ref="greaterValue" />
+                <param name="greaterLimit" assert-param-ref="greaterLimit" />
+            </formula>
+        </assert>
+
+        <assert name="lower">
+            <param name="lowerValue" type="Object" />
+            <param name="lowerLimit" type="Object" />
+            <formula predicate-ref="lower">
+                <param name="lowerValue" assert-param-ref="lowerValue" />
+                <param name="lowerLimit" assert-param-ref="lowerLimit" />
+            </formula>
+        </assert>
+
+        <assert name="ribChecker">
+            <param name="ribValue" type="String" />
+            <formula predicate-ref="ribChecker">
+                <param name="ribValue" assert-param-ref="ribValue" />
+            </formula>
+        </assert>
+
+        <assert name="systacCountryExist">
+            <param name="countryCode" type="String" />
+            <formula predicate-ref="systacCountryExist">
+                <param name="countryCode" assert-param-ref="countryCode" />
+            </formula>
+        </assert>
+                
+        <assert name="uniqueCodeSystem">
+            <param name="codeSystem" type="String" />
+            <formula predicate-ref="uniqueCodeSystem">
+                <param name="codeSystem" assert-param-ref="codeSystem" />
+            </formula>
+        </assert>
+                
+        <assert name="justOneOperation">
+            <param name="numeroBonVirement" type="String" />
+            <formula predicate-ref="justOneOperation">
+                <param name="numeroBonVirement" assert-param-ref="numeroBonVirement" />
+            </formula>
+        </assert>
+
+        <assert name="posteComptableExist">
+            <param name="codePosteComptable" type="String" />
+            <formula predicate-ref="posteComptableExist">
+                <param name="codePosteComptable" assert-param-ref="codePosteComptable" />
+            </formula>
+        </assert>
+                
+        <assert name="systacBankExist">
+            <param name="bankCode" type="String" />
+            <formula predicate-ref="systacBankExist">
+                <param name="bankCode" assert-param-ref="bankCode" />
+            </formula>
+        </assert>
+
+        <assert name="systacAgencyExist">
+            <param name="agencyCode" type="String" />
+            <formula predicate-ref="systacAgencyExist">
+                <param name="agencyCode" assert-param-ref="agencyCode" />
+            </formula>
+        </assert>
+		
+        <assert name="systacAgencyBankExist">
+            <param name="bankCode" type="String" />
+            <param name="agencyCode" type="String" />
+            <formula predicate-ref="systacAgencyBankExist">
+                <param name="bankCode" assert-param-ref="bankCode" />
+                <param name="agencyCode" assert-param-ref="agencyCode" />
+            </formula>
+        </assert>	
+
+        <assert name="sygmaParticipantCodeBicExist">
+            <param name="codeBicParticipant" type="String" />
+            <formula predicate-ref="sygmaParticipantCodeBicExist">
+                <param name="codeBicParticipant" assert-param-ref="codeBicParticipant" />
+            </formula>
+        </assert>
+
+        <assert name="sygmaParticipantCodeBicWithPropertiesExist">
+            <param name="codeBicParticipant" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="sygmaParticipantCodeBicWithPropertiesExist">
+                <param name="codeBicParticipant" assert-param-ref="codeBicParticipant" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert>
+
+        <assert name="sygmaParticipantNumeroCompteExist">
+            <param name="numeroCompteParticipant" type="String" />
+            <formula predicate-ref="sygmaParticipantNumeroCompteExist">
+                <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipant" />
+            </formula>
+        </assert>
+
+        <assert name="sygmaParticipantNumeroCompteWithPropertiesExist">
+            <param name="numeroCompteParticipant" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="sygmaParticipantNumeroCompteWithPropertiesExist">
+                <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipant" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert> 
+        
+        <assert name="ifMt103001Message">
+            <param name="codeTypeMessage" type="String" />
+            <param name="codeTypeTransaction" type="String" />
+            <formula predicate-ref="ifMt103001Message">
+                <param name="codeTypeMessage" assert-param-ref="codeTypeMessage" />
+                <param name="codeTypeTransaction" assert-param-ref="codeTypeTransaction" />
+            </formula>
+        </assert>
+                
+        <assert name="ifAdmin">
+            <param name="loginValue" type="String" />
+            <param name="passwordValue" type="String" />
+            <formula predicate-ref="ifAdmin">
+                <param name="loginValue" assert-param-ref="loginValue" />
+                <param name="passwordValue" assert-param-ref="passwordValue" />
+            </formula>
+        </assert>
+		
+        <assert name="ifReplayQueueInDataExist">
+            <param name="numeroReference" type="String" />
+            <param name="numeroBordereauVirement" type="String" />
+            <param name="codeEnregistrement"  type="String" />
+            <param name="codeValeur"  type="String" />
+            <formula predicate-ref="ifReplayQueueInDataExist">
+                <param name="numeroReference" assert-param-ref="numeroReference" />
+                <param name="numeroBordereauVirement" assert-param-ref="numeroBordereauVirement" />
+                <param name="codeEnregistrement"    assert-param-ref="codeEnregistrement" />
+                <param name="codeValeur"  assert-param-ref="codeValeur" />
+            </formula>
+        </assert>
+                
+        <assert name="ifReplayQueueInDataExistSystac">
+            <param name="numeroOperation" type="String" />
+            <param name="datePresentation" type="String" />     
+            <param name="codeValeur"  type="String" />  
+            <param name="codeEnregistrement"  type="String" />                                 
+            <formula predicate-ref="ifReplayQueueInDataExistSystac">
+                <param name="numeroOperation" assert-param-ref="numeroOperation" />
+                <param name="datePresentation" assert-param-ref="datePresentation" />
+                <param name="codeValeur"  assert-param-ref="codeValeur" />
+                <param name="codeEnregistrement"    assert-param-ref="codeEnregistrement" />                            
+            </formula>
+        </assert>
+                
+        <assert name="ifReplayQueueInDataExistSygma">
+            <param name="codeReference" type="String" />
+            <param name="datePresentation" type="String" />                                      
+            <formula predicate-ref="ifReplayQueueInDataExistSygma">
+                <param name="codeReference" assert-param-ref="codeReference" />
+                <param name="datePresentation" assert-param-ref="datePresentation" />                            
+            </formula>
+        </assert>
+                
+        <assert name="ifBankIsNotInBlackList">
+            <param name="codeBanqueDestinataire" type="String" />                  
+            <formula predicate-ref="ifBankIsNotInBlackList">
+                <param name="codeBanqueDestinataire" assert-param-ref="codeBanqueDestinataire" />                           
+            </formula>
+        </assert>
+                
+        <assert name="ifParticipantIsNotInBlackList">
+            <param name="codeBicDestinataireSygma" type="String" />                  
+            <formula predicate-ref="ifParticipantIsNotInBlackList">
+                <param name="codeBicDestinataireSygma" assert-param-ref="codeBicDestinataireSygma" />                           
+            </formula>
+        </assert>        
+                
+        <assert name="checkReconciliationItemExistence">
+            <param name="numeroReference" type="String" />
+            <param name="montant" type="String" />
+            <param name="datePresentation"  type="String" />
+            <formula predicate-ref="checkReconciliationItemExistence">
+                <param name="numeroReference" assert-param-ref="numeroReference" />
+                <param name="montant" assert-param-ref="montant" />
+                <param name="datePresentation"    assert-param-ref="datePresentation" />
+            </formula>
+        </assert>    
+                
+        <assert name="queueInAnnulationCalendarValidation">
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="queueInAnnulationCalendarValidation">
+                <param name="entityName" assert-param-ref="entityName" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert>
+
+        <assert name="notEqual">
+            <param name="notEqualParam" type="Object" />
+            <param name="notEqualValue" type="Object" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="notEqualParam" />
+                    <param name="equalValue" assert-param-ref="notEqualValue" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notPropertyReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="propertyName" type="String" />
+            <param name="propertyValue" type="Object" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityName" />
+                    <param name="propertyName" assert-param-ref="propertyName" />
+                    <param name="propertyValue" assert-param-ref="propertyValue" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notPropertiesReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="propertiesReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityName" />
+                    <param name="properties" assert-param-ref="properties" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notEmpty">
+            <param name="notEmptyParam" type="Object" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="empty">
+                    <param name="emptyParam" assert-param-ref="notEmptyParam" />
+                </param>
+            </formula>
+        </assert>
+
+        <!-- Est vrai si aumoins l'une des valeurs de la collection est non vide -->
+        <assert name="lazyNotEmptyValues">
+            <param name="lazyNotEmptyValuesParam" type="Collection" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="emptyValues">
+                    <param name="emptyValuesParam" assert-param-ref="lazyNotEmptyValuesParam" />
+                </param>
+            </formula>
+        </assert>
+
+        <!-- Est vrai si aumoins l'une des valeurs de la liste est vide -->
+        <assert name="lazyEmptyValues">
+            <param name="lazyEmptyValues" type="Collection" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="lazyEmptyValues" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="greaterOrEqual">
+            <param name="greaterEqualValue" type="Object" />
+            <param name="greaterEqualLimit" type="Object" />
+            <formula connector-ref="or">
+                <param name="orParam1" predicate-ref="greater">
+                    <param name="greaterValue" assert-param-ref="greaterEqualValue" />
+                    <param name="greaterLimit" assert-param-ref="greaterEqualLimit" />
+                </param>
+                <param name="orParam2" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="greaterEqualValue" />
+                    <param name="equalValue" assert-param-ref="greaterEqualLimit" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="lowerOrEqual">
+            <param name="lowerEqualValue" type="Object" />
+            <param name="lowerEqualLimit" type="Object" />
+            <formula connector-ref="or">
+                <param name="orParam1" predicate-ref="lower">
+                    <param name="lowerValue" assert-param-ref="lowerEqualValue" />
+                    <param name="lowerLimit" assert-param-ref="lowerEqualLimit" />
+                </param>
+                <param name="orParam2" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="lowerEqualValue" />
+                    <param name="equalValue" assert-param-ref="lowerEqualLimit" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notCsvEntry">
+            <param name="notEntryValue" type="String" />
+            <param name="notCsvValues" type="String" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="notEntryValue" />
+                    <param name="csvValues" assert-param-ref="notCsvValues" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="equalAndNotEmpty">
+            <param name="equalParam" type="Object" />
+            <param name="equalValue" type="Object" />
+            <param name="notEmptyParam" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam" />
+                    <param name="equalValue" assert-param-ref="equalValue" />
+                </param>
+                <param name="andParam2" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParam" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="equalAndEqual">
+            <param name="equalParam1" type="Object" />
+            <param name="equalValue1" type="Object" />
+            <param name="equalParam2" type="Object" />
+            <param name="equalValue2" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam1" />
+                    <param name="equalValue" assert-param-ref="equalValue1" />
+                </param>
+                <param name="andParam2" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam2" />
+                    <param name="equalValue" assert-param-ref="equalValue2" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="csvEntryAndCsvEntry">
+            <param name="entryValue1" type="Object" />
+            <param name="csvValues1" type="Object" />
+            <param name="entryValue2" type="Object" />
+            <param name="csvValues2" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValue1" />
+                    <param name="csvValues" assert-param-ref="csvValues1" />
+                </param>
+                <param name="andParam2" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValue2" />
+                    <param name="csvValues" assert-param-ref="csvValues2" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="csvEntryAndNotCsvEntry">
+            <param name="entryValue" type="Object" />
+            <param name="csvValues" type="Object" />
+            <param name="notEntryValue" type="Object" />
+            <param name="notCsvValues" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValue" />
+                    <param name="csvValues" assert-param-ref="csvValues" />
+                </param>
+                <param name="andParam2" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValue" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValues" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenGreater">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="greaterValueConclusion" type="String" />
+            <param name="greaterLimitConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="greater">
+                    <param name="greaterValue" assert-param-ref="greaterValueConclusion" />
+                    <param name="greaterLimit" assert-param-ref="greaterLimitConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenLower">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="lowerValueConclusion" type="String" />
+            <param name="lowerLimitConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="lower">
+                    <param name="lowerValue" assert-param-ref="lowerValueConclusion" />
+                    <param name="lowerLimit" assert-param-ref="lowerLimitConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenEqual">
+            <param name="equalParam1Assumption" type="String" />
+            <param name="equalValue1Assumption" type="String" />
+            <param name="equalParam2Conclusion" type="String" />
+            <param name="equalValue2Conclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam1Assumption" />
+                    <param name="equalValue" assert-param-ref="equalValue1Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam2Conclusion" />
+                    <param name="equalValue" assert-param-ref="equalValue2Conclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenNotEqual">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="notEqualParamConclusion" type="String" />
+            <param name="notEqualValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEqual">
+                    <param name="notEqualParam" assert-param-ref="notEqualParamConclusion" />
+                    <param name="notEqualValue" assert-param-ref="notEqualValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenNotCsvEntry">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="notEntryValueConclusion" type="String" />
+            <param name="notCsvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValueConclusion" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenCsvEntry">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="entryValueConclusion" type="String" />
+            <param name="csvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueConclusion" />
+                    <param name="csvValues" assert-param-ref="csvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenCsvEntry">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="entryValueConclusion" type="String" />
+            <param name="csvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueConclusion" />
+                    <param name="csvValues" assert-param-ref="csvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenSingleton">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="collectionEntriesConclusion" type="java.util.Collection" />
+            <param name="entryTypeNameConclusion" type="String" />
+            <param name="entryPropertyNameConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="singleton">
+                    <param name="collectionEntries" assert-param-ref="collectionEntriesConclusion" />
+                    <param name="entryTypeName" assert-param-ref="entryTypeNameConclusion" />
+                    <param name="entryPropertyName" assert-param-ref="entryPropertyNameConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenSingleOccurenceValueByGroup">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="collectionEntriesConclusion" type="java.util.Collection" />
+            <param name="entryTypeNameConclusion" type="String" />
+            <param name="entryPropertyNameConclusion" type="String" />
+            <param name="csvGroupPropertiesNamesConclusion" type="String" />
+            <param name="occurenceEntityConclusion" type="Object" />
+            <param name="occurenceValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="singleOccurenceValueByGroup">
+                    <param name="collectionEntries" assert-param-ref="collectionEntriesConclusion" />
+                    <param name="entryTypeName" assert-param-ref="entryTypeNameConclusion" />
+                    <param name="entryPropertyName" assert-param-ref="entryPropertyNameConclusion" />
+                    <param name="csvGroupPropertiesNames" assert-param-ref="csvGroupPropertiesNamesConclusion" />
+                    <param name="occurenceEntity" assert-param-ref="occurenceEntityConclusion" />
+                    <param name="occurenceValue" assert-param-ref="occurenceValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenEqual">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="equalParamConclusion" type="String" />
+            <param name="equalValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamConclusion" />
+                    <param name="equalValue" assert-param-ref="equalValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenNotEqual">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="notEqualParamConclusion" type="String" />
+            <param name="notEqualValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEqual">
+                    <param name="notEqualParam" assert-param-ref="notEqualParamConclusion" />
+                    <param name="notEqualValue" assert-param-ref="notEqualValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenNotCsvEntry">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="notEntryValueConclusion" type="String" />
+            <param name="notCsvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValueConclusion" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenPropertyReferenceEntry">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="entityNameConclusion" type="String" />
+            <param name="propertyNameConclusion" type="String" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualAndNotEmptyThenRibChecker">
+            <param name="equalParamAssumption" type="Object" />
+            <param name="equalValueAssumption" type="Object" />
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="ribValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="equalAndNotEmpty">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="ribChecker">
+                    <param name="ribValue" assert-param-ref="ribValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenNotEmpty">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenNotEmpty">
+            <param name="entryValueAssumption" type="Object" />
+            <param name="csvValuesAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+
+        <assert name="ifCsvEntryAndCsvEntryThenEqual">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="equalParamConclusion" type="Object" />
+            <param name="equalValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamConclusion" />
+                    <param name="equalValue" assert-param-ref="equalValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenPropertyReferenceEntry">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertyNameConclusion" type="Object" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenSygmaParticipantCodeBicExist">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenSygmaParticipantNumeroCompteExist">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenCsvEntry">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="entryValueConclusion" type="Object" />
+            <param name="csvValuesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueConclusion" />
+                    <param name="csvValues" assert-param-ref="csvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenEqual">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="equalValueConclusion" type="Object" />
+            <param name="equalParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalValue" assert-param-ref="equalValueConclusion" />
+                    <param name="equalParam" assert-param-ref="equalParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenNotEmpty">
+            <param name="equalValueAssumption" type="Object" />
+            <param name="equalParamAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                </param>				
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenNotEmpty">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotCsvEntryThenNotEmpty">
+            <param name="notEntryValueAssumption" type="Object" />
+            <param name="notCsvValuesAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValueAssumption" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+
+        <assert name="ifNotEmptyThenPropertyReferenceEntry">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertyNameConclusion" type="Object" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantCodeBicExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantNumeroCompteExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantCodeBicWithPropertiesExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicWithPropertiesExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantNumeroCompteWithPropertiesExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteWithPropertiesExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenPropertiesReferenceEntry">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertiesReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenLazyNotEmptyValues">
+            <param name="entryValueAssumption" type="Object" />
+            <param name="csvValuesAssumption" type="Object" />
+            <param name="lazyNotEmptyValuesParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="lazyNotEmptyValues">
+                    <param name="lazyNotEmptyValuesParam" assert-param-ref="lazyNotEmptyValuesParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenPropertyReferenceEntry">
+            <param name="notEmptyValuesParamAssumption" type="String" />
+            <param name="entityNameConclusion" type="String" />
+            <param name="propertyNameConclusion" type="String" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantCodeBicExist">
+            <param name="notEmptyValuesParamAssumption" type="String" />
+            <param name="codeBicParticipantConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantNumeroCompteExist">
+            <param name="notEmptyValuesParamAssumption" type="String" />
+            <param name="numeroCompteParticipantConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+
+        <assert name="ifNotEmptyValuesThenPropertiesReferenceEntry">
+            <param name="notEmptyValuesParamAssumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertiesReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantCodeBicWithPropertiesExist">
+            <param name="notEmptyValuesParamAssumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicWithPropertiesExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantNumeroCompteWithPropertiesExist">
+            <param name="notEmptyValuesParamAssumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteWithPropertiesExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+               
+
+    </asserts>
+
+</predicate-engine>
\ No newline at end of file
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/App.class b/generatetxt/target/classes/com/megatim/generatetxt/App.class
new file mode 100644
index 0000000..9ff704d
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/App.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.class b/generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.class
new file mode 100644
index 0000000..bebad22
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterConstraint.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.class b/generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.class
new file mode 100644
index 0000000..3a353c6
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/constraints/FileToValidateDelimiterValidator.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/enums/DataType.class b/generatetxt/target/classes/com/megatim/generatetxt/enums/DataType.class
new file mode 100644
index 0000000..3c9bd19
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/enums/DataType.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/generate/ParseData.class b/generatetxt/target/classes/com/megatim/generatetxt/generate/ParseData.class
new file mode 100644
index 0000000..c5323de
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/generate/ParseData.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Assertion.class b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Assertion.class
new file mode 100644
index 0000000..f522e9b
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Assertion.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Entity.class b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Entity.class
new file mode 100644
index 0000000..8aecbaa
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Entity.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/jaxb/EntityList.class b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/EntityList.class
new file mode 100644
index 0000000..b5ad585
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/EntityList.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/jaxb/ParamValue.class b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/ParamValue.class
new file mode 100644
index 0000000..4d75cc6
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/ParamValue.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/jaxb/PredicateConfig.class b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/PredicateConfig.class
new file mode 100644
index 0000000..c4d4792
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/PredicateConfig.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Validation.class b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Validation.class
new file mode 100644
index 0000000..296374f
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/jaxb/Validation.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/model/AlphaNumeriqueField.class b/generatetxt/target/classes/com/megatim/generatetxt/model/AlphaNumeriqueField.class
new file mode 100644
index 0000000..8987270
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/model/AlphaNumeriqueField.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.class b/generatetxt/target/classes/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.class
new file mode 100644
index 0000000..f716d26
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/model/MetaAlphaNumeriqueField.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/model/TruncatedElement.class b/generatetxt/target/classes/com/megatim/generatetxt/model/TruncatedElement.class
new file mode 100644
index 0000000..2f504bb
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/model/TruncatedElement.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/model/TypeFichier.class b/generatetxt/target/classes/com/megatim/generatetxt/model/TypeFichier.class
new file mode 100644
index 0000000..f996956
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/model/TypeFichier.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/pojo/Constantes.class b/generatetxt/target/classes/com/megatim/generatetxt/pojo/Constantes.class
new file mode 100644
index 0000000..9f920d4
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/pojo/Constantes.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/pojo/Delimiteur.class b/generatetxt/target/classes/com/megatim/generatetxt/pojo/Delimiteur.class
new file mode 100644
index 0000000..83aabef
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/pojo/Delimiteur.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidate.class b/generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidate.class
new file mode 100644
index 0000000..d5745d0
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidate.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidateDescription.class b/generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidateDescription.class
new file mode 100644
index 0000000..b3bd004
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/pojo/FileToValidateDescription.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/pojo/ParseResult.class b/generatetxt/target/classes/com/megatim/generatetxt/pojo/ParseResult.class
new file mode 100644
index 0000000..d00a7aa
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/pojo/ParseResult.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/pojo/ResultFileParsing.class b/generatetxt/target/classes/com/megatim/generatetxt/pojo/ResultFileParsing.class
new file mode 100644
index 0000000..5cb4f8a
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/pojo/ResultFileParsing.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils$1.class b/generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils$1.class
new file mode 100644
index 0000000..952ca67
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils$1.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils.class b/generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils.class
new file mode 100644
index 0000000..ce7e802
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/utilities/ParserUtils.class
Binary files differ
diff --git a/generatetxt/target/classes/com/megatim/generatetxt/utilities/Utilities.class b/generatetxt/target/classes/com/megatim/generatetxt/utilities/Utilities.class
new file mode 100644
index 0000000..c73e762
--- /dev/null
+++ b/generatetxt/target/classes/com/megatim/generatetxt/utilities/Utilities.class
Binary files differ
diff --git a/generatetxt/target/classes/predicatelogic-engine.xml b/generatetxt/target/classes/predicatelogic-engine.xml
new file mode 100644
index 0000000..30ca6c2
--- /dev/null
+++ b/generatetxt/target/classes/predicatelogic-engine.xml
@@ -0,0 +1,1665 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<predicate-engine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                  xsi:schemaLocation="http://www.leadware.net/predicatelogic-engine ../xsd/predicatelogic-engine.xsd"
+                  xmlns="http://www.leadware.net/predicatelogic-engine">
+
+    <!-- Définition des connecteurs -->
+    <connectors>
+
+        <connector name="not">
+            <invoke method="not"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="notParam" type="Boolean" />
+        </connector>
+
+        <connector name="or">
+            <invoke method="or"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="orParam1" type="Boolean" />
+            <param name="orParam2" type="Boolean" />
+        </connector>
+
+        <connector name="and">
+            <invoke method="and"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="andParam1" type="Boolean" />
+            <param name="andParam2" type="Boolean" />
+        </connector>
+
+        <connector name="implies">
+            <invoke method="implies"
+                                class-name="com.megatim.typefichier.validator.predicat.ConnectorImpl" />
+            <param name="impliesAssumption" type="Boolean" />
+            <param name="impliesConclusion" type="Boolean" />
+        </connector>
+
+    </connectors>
+
+    <!-- Définition des prédicats -->
+    <predicates>
+        <predicate name="inValues">
+            <invoke  method="inValues" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="values" type="String"/>
+            <param name="fieldToCheck" type="String" />
+        </predicate>
+             
+        <predicate name="ifTypeFichier">
+            <invoke  method="ifTypeFichier" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="index" type="int"/>
+            <param name="taille" type="int"/>
+            <param name="typeDonnee" type="String"/>
+            <param name="ligne" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="separateurDate" type="String"/>
+            <param name="taillePartieDecimale" type="String"/>
+            <param name="separateurDecimal" type="String"/>
+        </predicate>
+        
+        <predicate name="ifTypeFichierFileName">
+            <invoke  method="ifTypeFichierFileName" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="prefixe" type="String"/>
+            <param name="type_suffixe" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="fileName" type="String"/>
+        </predicate>
+        
+        <predicate name="ifVersion">
+            <invoke  method="ifVersion" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="version" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+        </predicate>
+        
+        <predicate name="ifCodeRemise">
+            <invoke  method="ifCodeRemise" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="codeRemise" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+        </predicate>
+        
+        <predicate name="ifNumber">
+            <invoke  method="ifNumber" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="nbFiles" type="String"/>
+        </predicate>
+        
+        <predicate name="ifDate">
+            <invoke  method="ifDate" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="date" type="String"/>
+            <param name="format" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="fileName" type="String" />
+        </predicate>
+        
+        <predicate name="ifCodeAgentOrCodeParticipant">
+            <invoke  method="ifCodeAgentOrCodeParticipant" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="code" type="String"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+        </predicate>
+        
+        <predicate name="ifTierce">
+            <invoke  method="ifTierce" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="minValue" type="int" />
+            <param-value name="maxValue" type="int" />
+        </predicate>
+        
+        <predicate name="ifDecimal">
+            <invoke  method="ifDecimal" class-name="com.megatim.typefichier.validator.predicat.PredicateImpl"/>
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+            <param-value name="typeDonnee" type="String" />
+            <param name="ligne" type="String"/>
+            <param-value name="decimalPartMaxLength" type="int" />
+            <param-value name="separator" type="char"/>
+        </predicate>
+        
+        <predicate name="equal">
+            <invoke method="equal" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="equalParam" type="Object" />
+            <param name="equalValue" type="Object" />
+        </predicate>
+         
+        <predicate name="empty">
+            <invoke method="empty"
+                    class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="emptyParam" type="Object" />
+            
+        </predicate>
+        <predicate name="equal">
+            <invoke method="equal"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="equalParam" type="Object" />
+            <param name="equalValue" type="Object" />
+        </predicate>
+
+        <predicate name="empty">
+            <invoke method="empty"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="emptyParam" type="Object" />
+        </predicate>
+
+        <predicate name="notEmptyValues">
+            <invoke method="notEmptyValues"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="notEmptyValuesParam" type="Collection" />
+        </predicate>
+
+        <predicate name="emptyValues">
+            <invoke method="emptyValues"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="emptyValuesParam" type="Collection" />
+        </predicate>
+
+        <predicate name="propertyReferenceEntry">
+            <invoke method="propertyReferenceEntry"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entityName" type="String" />
+            <param name="propertyName" type="String" />
+            <param name="propertyValue" type="Object" />
+        </predicate>
+
+        <predicate name="propertiesReferenceEntry">
+            <invoke method="propertiesReferenceEntry"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+        </predicate>
+
+        <predicate name="dateFormat">
+            <invoke method="dateFormat"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="dateValue" type="String" />
+            <param name="dateFormat" type="String" />
+        </predicate>
+
+        <predicate name="csvEntry">
+            <invoke method="csvEntry"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entryValue" type="String" />
+            <param name="csvValues" type="String" />
+        </predicate>
+
+        <predicate name="singleton">
+            <invoke method="singleton"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+        </predicate>
+
+        <predicate name="singletonValue">
+            <invoke method="singletonValue"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="singletonValue" type="Object" />
+        </predicate>
+
+        <predicate name="singleOccurenceValue">
+            <invoke method="singleOccurenceValue"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="occurenceValue" type="Object" />
+        </predicate>
+
+        <predicate name="singleOccurenceValueByGroup">
+            <invoke method="singleOccurenceValueByGroup"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="csvGroupPropertiesNames" type="String" />
+            <param name="occurenceEntity" type="Object" />
+            <param name="occurenceValue" type="Object" />
+        </predicate>
+
+        <predicate name="sum">
+            <invoke method="sum"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="sumValue" type="java.math.BigDecimal" />
+        </predicate>
+
+        <predicate name="size">
+            <invoke method="size"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="sizeValue" type="java.math.BigDecimal" />
+        </predicate>
+
+        <predicate name="greater">
+            <invoke method="greater"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="greaterValue" type="Object" />
+            <param name="greaterLimit" type="Object" />
+        </predicate>
+
+        <predicate name="lower">
+            <invoke method="lower"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="lowerValue" type="Object" />
+            <param name="lowerLimit" type="Object" />
+        </predicate>
+
+        <predicate name="ribChecker">
+            <invoke method="ribChecker"
+                                class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="ribValue" type="String" />
+        </predicate>
+
+        <predicate name="systacCountryExist">
+            <invoke  method="systacCountryExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="countryCode" type="String"/>
+        </predicate>
+
+        <predicate name="posteComptableExist">
+            <invoke  method="posteComptableExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codePosteComptable" type="String"/>
+        </predicate>
+                
+        <predicate name="systacBankExist">
+            <invoke  method="systacBankExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="bankCode" type="String"/>
+        </predicate>
+
+        <predicate name="systacAgencyExist">
+            <invoke  method="systacAgencyExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="agencyCode" type="String"/>
+        </predicate>
+                
+        <predicate name="systacAgencyBankExist">
+            <invoke  method="systacAgencyBankExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="bankCode" type="String"/>
+            <param name="agencyCode" type="String"/>
+        </predicate>		
+		
+        <predicate name="sygmaParticipantCodeBicExist">
+            <invoke  method="sygmaParticipantCodeBicExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBicParticipant" type="String"/>
+        </predicate>
+
+        <predicate name="sygmaParticipantCodeBicWithPropertiesExist">
+            <invoke  method="sygmaParticipantCodeBicWithPropertiesExist" 
+                                 class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBicParticipant" type="String"/>
+            <param name="properties" type="Map"/>
+        </predicate>
+
+        <predicate name="sygmaParticipantNumeroCompteExist">
+            <invoke  method="sygmaParticipantNumeroCompteExist" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroCompteParticipant" type="String"/>
+        </predicate>
+
+        <predicate name="sygmaParticipantNumeroCompteWithPropertiesExist">
+            <invoke  method="sygmaParticipantNumeroCompteWithPropertiesExist" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroCompteParticipant" type="String"/>
+            <param name="properties" type="Map"/>
+        </predicate>
+
+        <predicate name="ifReplayQueueInDataExist">
+            <invoke  method="ifReplayQueueInDataExist" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroReference" type="String"/>
+            <param name="numeroBordereauVirement" type="String"/>
+            <param name="codeEnregistrement"   type="String"/>
+            <param name="codeValeur"  type="String"/>
+        </predicate>
+				 
+        <predicate name="ifMt103001Message">
+            <invoke  method="ifMt103001Message" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeTypeMessage" type="String"/>
+            <param name="codeTypeTransaction" type="String"/>
+        </predicate>
+                 
+        <predicate name="ifAdmin">
+            <invoke  method="ifAdmin" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="loginValue" type="String"/>
+            <param name="passwordValue" type="String"/>
+        </predicate>
+                 
+        <predicate name="ifReplayQueueInDataExistSystac">
+            <invoke  method="ifReplayQueueInDataExistSystac" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroOperation" type="String"/>
+            <param name="datePresentation" type="String"/>
+            <param name="codeValeur"  type="String"/>
+            <param name="codeEnregistrement"   type="String"/>                       
+        </predicate>
+                 
+        <predicate name="ifReplayQueueInDataExistSygma">
+            <invoke  method="ifReplayQueueInDataExistSygma" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeReference" type="String"/>
+            <param name="datePresentation" type="String"/>                                              
+        </predicate>    
+                 
+        <predicate name="ifBankIsNotInBlackList">
+            <invoke  method="ifBankIsNotInBlackList" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBanqueDestinataire" type="String"/>
+        </predicate>
+                 
+        <predicate name="ifParticipantIsNotInBlackList">
+            <invoke  method="ifParticipantIsNotInBlackList" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeBicDestinataireSygma" type="String"/>
+        </predicate>      
+                 
+        <predicate name="checkReconciliationItemExistence">
+            <invoke  method="checkReconciliationItemExistence" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroReference" type="String"/>
+            <param name="montant" type="String"/>
+            <param name="datePresentation"   type="String"/>                        
+        </predicate>  
+                
+        <predicate name="queueInAnnulationCalendarValidation">
+            <invoke method="queueInAnnulationCalendarValidation"
+                            class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl" />
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+        </predicate>
+        <predicate name="uniqueCodeSystem">
+            <invoke  method="uniqueCodeSystem" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="codeSystem" type="String"/>
+        </predicate>
+        <predicate name="justOneOperation">
+            <invoke  method="justOneOperation" class-name="com.mgt.moteur.predicat.validation.impl.PredicateImpl"/>
+            <param name="numeroBonVirement" type="String"/>
+        </predicate>
+    </predicates>
+
+    <!-- Définition des assertions : ce sont des compositions de connecteurs, 
+    predicats et d'autres assertions -->
+    <asserts>
+        <assert name="inValues">
+            <param name="values" type="String"/>
+            <param-value name="fieldToCheck" type="String" />
+            <formula predicate-ref="inValues">
+                <param name="values" assert-param-ref="values" />
+                <param name="fieldToCheck" assert-param-ref="fieldToCheck" />
+            </formula>
+        </assert>
+            
+        <assert name="ifTypeFichier">
+            <param name="index" type="int"/>
+            <param name="taille" type="int"/>
+            <param name="typeDonnee" type="String"/>
+            <param name="ligne" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="separateurDate" type="String"/>
+            <param-value name="taillePartieDecimale" type="int" />
+            <param-value name="separateurDecimal" type="char"/>
+            <formula predicate-ref="ifTypeFichier">
+                <param name="index" assert-param-ref="index" />
+                <param name="taille" assert-param-ref="taille" />
+                <param name="typeDonnee" assert-param-ref="typeDonnee" />
+                <param name="ligne" assert-param-ref="ligne" />
+                <param name="formatDate" assert-param-ref="formatDate" />
+                <param name="separateurDate" assert-param-ref="separateurDate" />
+                <param name="taillePartieDecimale" assert-param-ref="taillePartieDecimale" />
+                <param name="separateurDecimal" assert-param-ref="separateurDecimal" />
+                    
+            </formula>
+        </assert>
+            
+        <assert name="ifTypeFichierFileName">
+            <param name="prefixe" type="String"/>
+            <param name="type_suffixe" type="String"/>
+            <param name="formatDate" type="String"/>
+            <param name="fileName" type="String"/>
+            <formula predicate-ref="ifTypeFichierFileName">
+                <param name="prefixe" assert-param-ref="prefixe" />
+                <param name="type_suffixe" assert-param-ref="type_suffixe" />
+                <param name="formatDate" assert-param-ref="formatDate" />
+                <param name="fileName" assert-param-ref="fileName" />
+            </formula>
+        </assert>
+            
+        <assert name="ifVersion">
+            <param name="version" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+            <formula predicate-ref="ifVersion">
+                <param name="version" assert-param-ref="version" />
+                <param name="nbPosition" assert-param-ref="nbPosition" />
+                <param name="typeCharactere" assert-param-ref="typeCharactere" />
+            </formula>
+        </assert>
+                
+        <assert name="ifCodeRemise">
+            <param name="codeRemise" type="String"/>
+            <param name="nbPosition" type="int"/>
+            <param name="typeCharactere" type="String"/>
+            <formula predicate-ref="ifCodeRemise">
+                <param name="codeRemise" assert-param-ref="codeRemise" />
+                <param name="nbPosition" assert-param-ref="nbPosition" />
+                <param name="typeCharactere" assert-param-ref="typeCharactere" />
+            </formula>
+        </assert>
+                
+        <assert name="ifNumber">
+            <param name="nbFiles" type="String"/>
+            <formula predicate-ref="ifNumber">
+                <param name="nbFiles" assert-param-ref="nbFiles" />
+            </formula>
+        </assert>
+                
+                
+        <assert name="ifDate">
+            <param name="date" type="String"/>
+            <param name="format" type="String"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <formula predicate-ref="ifDate">
+                <param name="date" assert-param-ref="date" />
+                <param name="format" assert-param-ref="format" />
+                <param name="index" assert-param-ref="index" />
+                <param name="fileName" assert-param-ref="fileName" />
+            </formula>
+        </assert>
+                
+        <assert name="ifCodeAgentOrCodeParticipant">
+            <param name="code" type="String"/>
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+            <formula predicate-ref="ifCodeAgentOrCodeParticipant">
+                <param name="code" assert-param-ref="code" />
+                <param name="fileName" assert-param-ref="fileName" />
+                <param name="taille" assert-param-ref="taille" />
+                <param name="index" assert-param-ref="index" />
+            </formula>
+        </assert>
+
+         
+        <assert name="ifTierce">
+            <param name="fileName" type="String"/>
+            <param-value name="index" type="int" />
+            <param-value name="minValue" type="int" />
+            <param-value name="maxValue" type="int" />
+            <formula predicate-ref="ifTierce">
+                <param name="fileName" assert-param-ref="fileName" />
+                <param name="minValue" assert-param-ref="minValue" />
+                <param name="maxValue" assert-param-ref="maxValue" />
+                <param name="index" assert-param-ref="index" />
+            </formula>
+        </assert>
+              
+        <assert name="ifDecimal">
+            <param-value name="index" type="int" />
+            <param-value name="taille" type="int" />
+            <param-value name="typeDonnee" value="String" />
+            <param name="ligne" type="String"/>
+            <param-value name="decimalPartMaxLength" type="int" />
+            <param-value name="separator" type="char" />
+            <formula predicate-ref="ifDecimal">
+                <param name="index" assert-param-ref="index" />
+                <param name="taille" assert-param-ref="taille" />
+                <param name="typeDonnee" assert-param-ref="typeDonnee" />
+                <param name="ligne" assert-param-ref="ligne"/>
+                <param name="decimalPartMaxLength" assert-param-ref="decimalPartMaxLength" />
+                <param name="separator" assert-param-ref="separator" />
+            </formula>
+        </assert>
+              
+        <assert name="equal">
+            <param name="equalValue" type="Object" />
+            <param name="equalParam" type="Object" />
+            <formula predicate-ref="equal">
+                <param name="equalValue" assert-param-ref="equalValue" />
+                <param name="equalParam" assert-param-ref="equalParam" />
+            </formula>
+        </assert>
+
+        <assert name="empty">
+            <param name="emptyParam" type="Object" />
+            <formula predicate-ref="empty">
+                <param name="emptyParam" assert-param-ref="emptyParam" />
+            </formula>
+        </assert>
+
+        <!-- Est vrai si toutes les valeurs sont non vides -->
+        <assert name="notEmptyValues">
+            <param name="notEmptyValuesParam" type="Object" />
+            <formula predicate-ref="notEmptyValues">
+                <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParam" />
+            </formula>
+        </assert>
+
+        <!-- Est vrai si toutes les valeurs sont vides -->
+        <assert name="emptyValues">
+            <param name="emptyValuesParam" type="Object" />
+            <formula predicate-ref="emptyValues">
+                <param name="emptyValuesParam" assert-param-ref="emptyValuesParam" />
+            </formula>
+        </assert>
+
+        <assert name="propertyReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="propertyName" type="String" />
+            <param name="propertyValue" type="Object" />
+            <formula predicate-ref="propertyReferenceEntry">
+                <param name="entityName" assert-param-ref="entityName" />
+                <param name="propertyName" assert-param-ref="propertyName" />
+                <param name="propertyValue" assert-param-ref="propertyValue" />
+            </formula>
+        </assert>
+
+        <assert name="propertiesReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="propertiesReferenceEntry">
+                <param name="entityName" assert-param-ref="entityName" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert>
+
+        <assert name="dateFormat">
+            <param name="dateValue" type="String" />
+            <param name="dateFormat" type="String" />
+            <formula predicate-ref="dateFormat">
+                <param name="dateValue" assert-param-ref="dateValue" />
+                <param name="dateFormat" assert-param-ref="dateFormat" />
+            </formula>
+        </assert>
+
+        <assert name="csvEntry">
+            <param name="entryValue" type="String" />
+            <param name="csvValues" type="String" />
+            <formula predicate-ref="csvEntry">
+                <param name="entryValue" assert-param-ref="entryValue" />
+                <param name="csvValues" assert-param-ref="csvValues" />
+            </formula>
+        </assert>
+
+        <assert name="singleton">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <formula predicate-ref="singleton">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+            </formula>
+        </assert>
+
+        <assert name="singletonValue">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="singletonValue" type="Object" />
+            <formula predicate-ref="singletonValue">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="singletonValue" assert-param-ref="singletonValue" />
+            </formula>
+        </assert>
+
+        <assert name="singleOccurenceValue">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="occurenceValue" type="Object" />
+            <formula predicate-ref="singleOccurenceValue">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="occurenceValue" assert-param-ref="occurenceValue" />
+            </formula>
+        </assert>
+
+        <assert name="singleOccurenceValueByGroup">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="csvGroupPropertiesNames" type="String" />
+            <param name="occurenceEntity" type="Object" />
+            <param name="occurenceValue" type="Object" />
+            <formula predicate-ref="singleOccurenceValueByGroup">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="csvGroupPropertiesNames" assert-param-ref="csvGroupPropertiesNames" />
+                <param name="occurenceEntity" assert-param-ref="occurenceEntity" />
+                <param name="occurenceValue" assert-param-ref="occurenceValue" />
+            </formula>
+        </assert>
+
+        <assert name="sum">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="entryPropertyName" type="String" />
+            <param name="sumValue" type="java.math.BigDecimal" />
+            <formula predicate-ref="sum">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="entryPropertyName" assert-param-ref="entryPropertyName" />
+                <param name="sumValue" assert-param-ref="sumValue" />
+            </formula>
+        </assert>
+
+        <assert name="size">
+            <param name="collectionEntries" type="java.util.Collection" />
+            <param name="entryTypeName" type="String" />
+            <param name="sizeValue" type="java.math.BigDecimal" />
+            <formula predicate-ref="size">
+                <param name="collectionEntries" assert-param-ref="collectionEntries" />
+                <param name="entryTypeName" assert-param-ref="entryTypeName" />
+                <param name="sizeValue" assert-param-ref="sizeValue" />
+            </formula>
+        </assert>
+
+        <assert name="greater">
+            <param name="greaterValue" type="Object" />
+            <param name="greaterLimit" type="Object" />
+            <formula predicate-ref="greater">
+                <param name="greaterValue" assert-param-ref="greaterValue" />
+                <param name="greaterLimit" assert-param-ref="greaterLimit" />
+            </formula>
+        </assert>
+
+        <assert name="lower">
+            <param name="lowerValue" type="Object" />
+            <param name="lowerLimit" type="Object" />
+            <formula predicate-ref="lower">
+                <param name="lowerValue" assert-param-ref="lowerValue" />
+                <param name="lowerLimit" assert-param-ref="lowerLimit" />
+            </formula>
+        </assert>
+
+        <assert name="ribChecker">
+            <param name="ribValue" type="String" />
+            <formula predicate-ref="ribChecker">
+                <param name="ribValue" assert-param-ref="ribValue" />
+            </formula>
+        </assert>
+
+        <assert name="systacCountryExist">
+            <param name="countryCode" type="String" />
+            <formula predicate-ref="systacCountryExist">
+                <param name="countryCode" assert-param-ref="countryCode" />
+            </formula>
+        </assert>
+                
+        <assert name="uniqueCodeSystem">
+            <param name="codeSystem" type="String" />
+            <formula predicate-ref="uniqueCodeSystem">
+                <param name="codeSystem" assert-param-ref="codeSystem" />
+            </formula>
+        </assert>
+                
+        <assert name="justOneOperation">
+            <param name="numeroBonVirement" type="String" />
+            <formula predicate-ref="justOneOperation">
+                <param name="numeroBonVirement" assert-param-ref="numeroBonVirement" />
+            </formula>
+        </assert>
+
+        <assert name="posteComptableExist">
+            <param name="codePosteComptable" type="String" />
+            <formula predicate-ref="posteComptableExist">
+                <param name="codePosteComptable" assert-param-ref="codePosteComptable" />
+            </formula>
+        </assert>
+                
+        <assert name="systacBankExist">
+            <param name="bankCode" type="String" />
+            <formula predicate-ref="systacBankExist">
+                <param name="bankCode" assert-param-ref="bankCode" />
+            </formula>
+        </assert>
+
+        <assert name="systacAgencyExist">
+            <param name="agencyCode" type="String" />
+            <formula predicate-ref="systacAgencyExist">
+                <param name="agencyCode" assert-param-ref="agencyCode" />
+            </formula>
+        </assert>
+		
+        <assert name="systacAgencyBankExist">
+            <param name="bankCode" type="String" />
+            <param name="agencyCode" type="String" />
+            <formula predicate-ref="systacAgencyBankExist">
+                <param name="bankCode" assert-param-ref="bankCode" />
+                <param name="agencyCode" assert-param-ref="agencyCode" />
+            </formula>
+        </assert>	
+
+        <assert name="sygmaParticipantCodeBicExist">
+            <param name="codeBicParticipant" type="String" />
+            <formula predicate-ref="sygmaParticipantCodeBicExist">
+                <param name="codeBicParticipant" assert-param-ref="codeBicParticipant" />
+            </formula>
+        </assert>
+
+        <assert name="sygmaParticipantCodeBicWithPropertiesExist">
+            <param name="codeBicParticipant" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="sygmaParticipantCodeBicWithPropertiesExist">
+                <param name="codeBicParticipant" assert-param-ref="codeBicParticipant" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert>
+
+        <assert name="sygmaParticipantNumeroCompteExist">
+            <param name="numeroCompteParticipant" type="String" />
+            <formula predicate-ref="sygmaParticipantNumeroCompteExist">
+                <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipant" />
+            </formula>
+        </assert>
+
+        <assert name="sygmaParticipantNumeroCompteWithPropertiesExist">
+            <param name="numeroCompteParticipant" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="sygmaParticipantNumeroCompteWithPropertiesExist">
+                <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipant" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert> 
+        
+        <assert name="ifMt103001Message">
+            <param name="codeTypeMessage" type="String" />
+            <param name="codeTypeTransaction" type="String" />
+            <formula predicate-ref="ifMt103001Message">
+                <param name="codeTypeMessage" assert-param-ref="codeTypeMessage" />
+                <param name="codeTypeTransaction" assert-param-ref="codeTypeTransaction" />
+            </formula>
+        </assert>
+                
+        <assert name="ifAdmin">
+            <param name="loginValue" type="String" />
+            <param name="passwordValue" type="String" />
+            <formula predicate-ref="ifAdmin">
+                <param name="loginValue" assert-param-ref="loginValue" />
+                <param name="passwordValue" assert-param-ref="passwordValue" />
+            </formula>
+        </assert>
+		
+        <assert name="ifReplayQueueInDataExist">
+            <param name="numeroReference" type="String" />
+            <param name="numeroBordereauVirement" type="String" />
+            <param name="codeEnregistrement"  type="String" />
+            <param name="codeValeur"  type="String" />
+            <formula predicate-ref="ifReplayQueueInDataExist">
+                <param name="numeroReference" assert-param-ref="numeroReference" />
+                <param name="numeroBordereauVirement" assert-param-ref="numeroBordereauVirement" />
+                <param name="codeEnregistrement"    assert-param-ref="codeEnregistrement" />
+                <param name="codeValeur"  assert-param-ref="codeValeur" />
+            </formula>
+        </assert>
+                
+        <assert name="ifReplayQueueInDataExistSystac">
+            <param name="numeroOperation" type="String" />
+            <param name="datePresentation" type="String" />     
+            <param name="codeValeur"  type="String" />  
+            <param name="codeEnregistrement"  type="String" />                                 
+            <formula predicate-ref="ifReplayQueueInDataExistSystac">
+                <param name="numeroOperation" assert-param-ref="numeroOperation" />
+                <param name="datePresentation" assert-param-ref="datePresentation" />
+                <param name="codeValeur"  assert-param-ref="codeValeur" />
+                <param name="codeEnregistrement"    assert-param-ref="codeEnregistrement" />                            
+            </formula>
+        </assert>
+                
+        <assert name="ifReplayQueueInDataExistSygma">
+            <param name="codeReference" type="String" />
+            <param name="datePresentation" type="String" />                                      
+            <formula predicate-ref="ifReplayQueueInDataExistSygma">
+                <param name="codeReference" assert-param-ref="codeReference" />
+                <param name="datePresentation" assert-param-ref="datePresentation" />                            
+            </formula>
+        </assert>
+                
+        <assert name="ifBankIsNotInBlackList">
+            <param name="codeBanqueDestinataire" type="String" />                  
+            <formula predicate-ref="ifBankIsNotInBlackList">
+                <param name="codeBanqueDestinataire" assert-param-ref="codeBanqueDestinataire" />                           
+            </formula>
+        </assert>
+                
+        <assert name="ifParticipantIsNotInBlackList">
+            <param name="codeBicDestinataireSygma" type="String" />                  
+            <formula predicate-ref="ifParticipantIsNotInBlackList">
+                <param name="codeBicDestinataireSygma" assert-param-ref="codeBicDestinataireSygma" />                           
+            </formula>
+        </assert>        
+                
+        <assert name="checkReconciliationItemExistence">
+            <param name="numeroReference" type="String" />
+            <param name="montant" type="String" />
+            <param name="datePresentation"  type="String" />
+            <formula predicate-ref="checkReconciliationItemExistence">
+                <param name="numeroReference" assert-param-ref="numeroReference" />
+                <param name="montant" assert-param-ref="montant" />
+                <param name="datePresentation"    assert-param-ref="datePresentation" />
+            </formula>
+        </assert>    
+                
+        <assert name="queueInAnnulationCalendarValidation">
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+            <formula predicate-ref="queueInAnnulationCalendarValidation">
+                <param name="entityName" assert-param-ref="entityName" />
+                <param name="properties" assert-param-ref="properties" />
+            </formula>
+        </assert>
+
+        <assert name="notEqual">
+            <param name="notEqualParam" type="Object" />
+            <param name="notEqualValue" type="Object" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="notEqualParam" />
+                    <param name="equalValue" assert-param-ref="notEqualValue" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notPropertyReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="propertyName" type="String" />
+            <param name="propertyValue" type="Object" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityName" />
+                    <param name="propertyName" assert-param-ref="propertyName" />
+                    <param name="propertyValue" assert-param-ref="propertyValue" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notPropertiesReferenceEntry">
+            <param name="entityName" type="String" />
+            <param name="properties" type="Map" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="propertiesReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityName" />
+                    <param name="properties" assert-param-ref="properties" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notEmpty">
+            <param name="notEmptyParam" type="Object" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="empty">
+                    <param name="emptyParam" assert-param-ref="notEmptyParam" />
+                </param>
+            </formula>
+        </assert>
+
+        <!-- Est vrai si aumoins l'une des valeurs de la collection est non vide -->
+        <assert name="lazyNotEmptyValues">
+            <param name="lazyNotEmptyValuesParam" type="Collection" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="emptyValues">
+                    <param name="emptyValuesParam" assert-param-ref="lazyNotEmptyValuesParam" />
+                </param>
+            </formula>
+        </assert>
+
+        <!-- Est vrai si aumoins l'une des valeurs de la liste est vide -->
+        <assert name="lazyEmptyValues">
+            <param name="lazyEmptyValues" type="Collection" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="lazyEmptyValues" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="greaterOrEqual">
+            <param name="greaterEqualValue" type="Object" />
+            <param name="greaterEqualLimit" type="Object" />
+            <formula connector-ref="or">
+                <param name="orParam1" predicate-ref="greater">
+                    <param name="greaterValue" assert-param-ref="greaterEqualValue" />
+                    <param name="greaterLimit" assert-param-ref="greaterEqualLimit" />
+                </param>
+                <param name="orParam2" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="greaterEqualValue" />
+                    <param name="equalValue" assert-param-ref="greaterEqualLimit" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="lowerOrEqual">
+            <param name="lowerEqualValue" type="Object" />
+            <param name="lowerEqualLimit" type="Object" />
+            <formula connector-ref="or">
+                <param name="orParam1" predicate-ref="lower">
+                    <param name="lowerValue" assert-param-ref="lowerEqualValue" />
+                    <param name="lowerLimit" assert-param-ref="lowerEqualLimit" />
+                </param>
+                <param name="orParam2" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="lowerEqualValue" />
+                    <param name="equalValue" assert-param-ref="lowerEqualLimit" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="notCsvEntry">
+            <param name="notEntryValue" type="String" />
+            <param name="notCsvValues" type="String" />
+            <formula connector-ref="not">
+                <param name="notParam" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="notEntryValue" />
+                    <param name="csvValues" assert-param-ref="notCsvValues" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="equalAndNotEmpty">
+            <param name="equalParam" type="Object" />
+            <param name="equalValue" type="Object" />
+            <param name="notEmptyParam" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam" />
+                    <param name="equalValue" assert-param-ref="equalValue" />
+                </param>
+                <param name="andParam2" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParam" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="equalAndEqual">
+            <param name="equalParam1" type="Object" />
+            <param name="equalValue1" type="Object" />
+            <param name="equalParam2" type="Object" />
+            <param name="equalValue2" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam1" />
+                    <param name="equalValue" assert-param-ref="equalValue1" />
+                </param>
+                <param name="andParam2" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam2" />
+                    <param name="equalValue" assert-param-ref="equalValue2" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="csvEntryAndCsvEntry">
+            <param name="entryValue1" type="Object" />
+            <param name="csvValues1" type="Object" />
+            <param name="entryValue2" type="Object" />
+            <param name="csvValues2" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValue1" />
+                    <param name="csvValues" assert-param-ref="csvValues1" />
+                </param>
+                <param name="andParam2" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValue2" />
+                    <param name="csvValues" assert-param-ref="csvValues2" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="csvEntryAndNotCsvEntry">
+            <param name="entryValue" type="Object" />
+            <param name="csvValues" type="Object" />
+            <param name="notEntryValue" type="Object" />
+            <param name="notCsvValues" type="Object" />
+            <formula connector-ref="and">
+                <param name="andParam1" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValue" />
+                    <param name="csvValues" assert-param-ref="csvValues" />
+                </param>
+                <param name="andParam2" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValue" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValues" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenGreater">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="greaterValueConclusion" type="String" />
+            <param name="greaterLimitConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="greater">
+                    <param name="greaterValue" assert-param-ref="greaterValueConclusion" />
+                    <param name="greaterLimit" assert-param-ref="greaterLimitConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenLower">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="lowerValueConclusion" type="String" />
+            <param name="lowerLimitConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="lower">
+                    <param name="lowerValue" assert-param-ref="lowerValueConclusion" />
+                    <param name="lowerLimit" assert-param-ref="lowerLimitConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenEqual">
+            <param name="equalParam1Assumption" type="String" />
+            <param name="equalValue1Assumption" type="String" />
+            <param name="equalParam2Conclusion" type="String" />
+            <param name="equalValue2Conclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam1Assumption" />
+                    <param name="equalValue" assert-param-ref="equalValue1Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParam2Conclusion" />
+                    <param name="equalValue" assert-param-ref="equalValue2Conclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenNotEqual">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="notEqualParamConclusion" type="String" />
+            <param name="notEqualValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEqual">
+                    <param name="notEqualParam" assert-param-ref="notEqualParamConclusion" />
+                    <param name="notEqualValue" assert-param-ref="notEqualValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenNotCsvEntry">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="notEntryValueConclusion" type="String" />
+            <param name="notCsvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValueConclusion" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenCsvEntry">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="entryValueConclusion" type="String" />
+            <param name="csvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueConclusion" />
+                    <param name="csvValues" assert-param-ref="csvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenCsvEntry">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="entryValueConclusion" type="String" />
+            <param name="csvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueConclusion" />
+                    <param name="csvValues" assert-param-ref="csvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenSingleton">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="collectionEntriesConclusion" type="java.util.Collection" />
+            <param name="entryTypeNameConclusion" type="String" />
+            <param name="entryPropertyNameConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="singleton">
+                    <param name="collectionEntries" assert-param-ref="collectionEntriesConclusion" />
+                    <param name="entryTypeName" assert-param-ref="entryTypeNameConclusion" />
+                    <param name="entryPropertyName" assert-param-ref="entryPropertyNameConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenSingleOccurenceValueByGroup">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="collectionEntriesConclusion" type="java.util.Collection" />
+            <param name="entryTypeNameConclusion" type="String" />
+            <param name="entryPropertyNameConclusion" type="String" />
+            <param name="csvGroupPropertiesNamesConclusion" type="String" />
+            <param name="occurenceEntityConclusion" type="Object" />
+            <param name="occurenceValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="singleOccurenceValueByGroup">
+                    <param name="collectionEntries" assert-param-ref="collectionEntriesConclusion" />
+                    <param name="entryTypeName" assert-param-ref="entryTypeNameConclusion" />
+                    <param name="entryPropertyName" assert-param-ref="entryPropertyNameConclusion" />
+                    <param name="csvGroupPropertiesNames" assert-param-ref="csvGroupPropertiesNamesConclusion" />
+                    <param name="occurenceEntity" assert-param-ref="occurenceEntityConclusion" />
+                    <param name="occurenceValue" assert-param-ref="occurenceValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenEqual">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="equalParamConclusion" type="String" />
+            <param name="equalValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamConclusion" />
+                    <param name="equalValue" assert-param-ref="equalValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenNotEqual">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="notEqualParamConclusion" type="String" />
+            <param name="notEqualValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEqual">
+                    <param name="notEqualParam" assert-param-ref="notEqualParamConclusion" />
+                    <param name="notEqualValue" assert-param-ref="notEqualValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenNotCsvEntry">
+            <param name="entryValueAssumption" type="String" />
+            <param name="csvValuesAssumption" type="String" />
+            <param name="notEntryValueConclusion" type="String" />
+            <param name="notCsvValuesConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValueConclusion" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenPropertyReferenceEntry">
+            <param name="equalParamAssumption" type="String" />
+            <param name="equalValueAssumption" type="String" />
+            <param name="entityNameConclusion" type="String" />
+            <param name="propertyNameConclusion" type="String" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualAndNotEmptyThenRibChecker">
+            <param name="equalParamAssumption" type="Object" />
+            <param name="equalValueAssumption" type="Object" />
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="ribValueConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="equalAndNotEmpty">
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="ribChecker">
+                    <param name="ribValue" assert-param-ref="ribValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenNotEmpty">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenNotEmpty">
+            <param name="entryValueAssumption" type="Object" />
+            <param name="csvValuesAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+
+        <assert name="ifCsvEntryAndCsvEntryThenEqual">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="equalParamConclusion" type="Object" />
+            <param name="equalValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalParam" assert-param-ref="equalParamConclusion" />
+                    <param name="equalValue" assert-param-ref="equalValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenPropertyReferenceEntry">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertyNameConclusion" type="Object" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenSygmaParticipantCodeBicExist">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryAndCsvEntryThenSygmaParticipantNumeroCompteExist">
+            <param name="entryValue1Assumption" type="Object" />
+            <param name="csvValues1Assumption" type="Object" />
+            <param name="entryValue2Assumption" type="Object" />
+            <param name="csvValues2Assumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="csvEntryAndCsvEntry">
+                    <param name="entryValue1" assert-param-ref="entryValue1Assumption" />
+                    <param name="csvValues1" assert-param-ref="csvValues1Assumption" />
+                    <param name="entryValue2" assert-param-ref="entryValue2Assumption" />
+                    <param name="csvValues2" assert-param-ref="csvValues2Assumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenCsvEntry">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="entryValueConclusion" type="Object" />
+            <param name="csvValuesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueConclusion" />
+                    <param name="csvValues" assert-param-ref="csvValuesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenEqual">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="equalValueConclusion" type="Object" />
+            <param name="equalParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="equal">
+                    <param name="equalValue" assert-param-ref="equalValueConclusion" />
+                    <param name="equalParam" assert-param-ref="equalParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifEqualThenNotEmpty">
+            <param name="equalValueAssumption" type="Object" />
+            <param name="equalParamAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="equal">
+                    <param name="equalValue" assert-param-ref="equalValueAssumption" />
+                    <param name="equalParam" assert-param-ref="equalParamAssumption" />
+                </param>				
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenNotEmpty">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotCsvEntryThenNotEmpty">
+            <param name="notEntryValueAssumption" type="Object" />
+            <param name="notCsvValuesAssumption" type="Object" />
+            <param name="notEmptyParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notCsvEntry">
+                    <param name="notEntryValue" assert-param-ref="notEntryValueAssumption" />
+                    <param name="notCsvValues" assert-param-ref="notCsvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+
+        <assert name="ifNotEmptyThenPropertyReferenceEntry">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertyNameConclusion" type="Object" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantCodeBicExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantNumeroCompteExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantCodeBicWithPropertiesExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicWithPropertiesExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenSygmaParticipantNumeroCompteWithPropertiesExist">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteWithPropertiesExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyThenPropertiesReferenceEntry">
+            <param name="notEmptyParamAssumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" assert-ref="notEmpty">
+                    <param name="notEmptyParam" assert-param-ref="notEmptyParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertiesReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifCsvEntryThenLazyNotEmptyValues">
+            <param name="entryValueAssumption" type="Object" />
+            <param name="csvValuesAssumption" type="Object" />
+            <param name="lazyNotEmptyValuesParamConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="csvEntry">
+                    <param name="entryValue" assert-param-ref="entryValueAssumption" />
+                    <param name="csvValues" assert-param-ref="csvValuesAssumption" />
+                </param>
+                <param name="impliesConclusion" assert-ref="lazyNotEmptyValues">
+                    <param name="lazyNotEmptyValuesParam" assert-param-ref="lazyNotEmptyValuesParamConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenPropertyReferenceEntry">
+            <param name="notEmptyValuesParamAssumption" type="String" />
+            <param name="entityNameConclusion" type="String" />
+            <param name="propertyNameConclusion" type="String" />
+            <param name="propertyValueConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertyReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="propertyName" assert-param-ref="propertyNameConclusion" />
+                    <param name="propertyValue" assert-param-ref="propertyValueConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantCodeBicExist">
+            <param name="notEmptyValuesParamAssumption" type="String" />
+            <param name="codeBicParticipantConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantNumeroCompteExist">
+            <param name="notEmptyValuesParamAssumption" type="String" />
+            <param name="numeroCompteParticipantConclusion" type="String" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+
+        <assert name="ifNotEmptyValuesThenPropertiesReferenceEntry">
+            <param name="notEmptyValuesParamAssumption" type="Object" />
+            <param name="entityNameConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="propertiesReferenceEntry">
+                    <param name="entityName" assert-param-ref="entityNameConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantCodeBicWithPropertiesExist">
+            <param name="notEmptyValuesParamAssumption" type="Object" />
+            <param name="codeBicParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantCodeBicWithPropertiesExist">
+                    <param name="codeBicParticipant" assert-param-ref="codeBicParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+
+        <assert name="ifNotEmptyValuesThenSygmaParticipantNumeroCompteWithPropertiesExist">
+            <param name="notEmptyValuesParamAssumption" type="Object" />
+            <param name="numeroCompteParticipantConclusion" type="Object" />
+            <param name="propertiesConclusion" type="Object" />
+            <formula connector-ref="implies">
+                <param name="impliesAssumption" predicate-ref="notEmptyValues">
+                    <param name="notEmptyValuesParam" assert-param-ref="notEmptyValuesParamAssumption" />
+                </param>
+                <param name="impliesConclusion" predicate-ref="sygmaParticipantNumeroCompteWithPropertiesExist">
+                    <param name="numeroCompteParticipant" assert-param-ref="numeroCompteParticipantConclusion" />
+                    <param name="properties" assert-param-ref="propertiesConclusion" />
+                </param>
+            </formula>
+        </assert>
+               
+
+    </asserts>
+
+</predicate-engine>
\ No newline at end of file
diff --git a/generatetxt/target/generatetxt-1.0-jar-with-dependencies.jar b/generatetxt/target/generatetxt-1.0-jar-with-dependencies.jar
new file mode 100644
index 0000000..ea0e482
--- /dev/null
+++ b/generatetxt/target/generatetxt-1.0-jar-with-dependencies.jar
Binary files differ
diff --git a/generatetxt/target/generatetxt-1.0.jar b/generatetxt/target/generatetxt-1.0.jar
new file mode 100644
index 0000000..c90adc7
--- /dev/null
+++ b/generatetxt/target/generatetxt-1.0.jar
Binary files differ
diff --git a/generatetxt/target/maven-archiver/pom.properties b/generatetxt/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..d8cd6c1
--- /dev/null
+++ b/generatetxt/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Wed Nov 19 13:05:27 WAT 2025
+version=1.0
+groupId=com.megatim
+artifactId=generatetxt
diff --git a/generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..483e4b8
--- /dev/null
+++ b/generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,24 @@
+com\megatim\generatetxt\pojo\FileToValidateDescription.class
+com\megatim\generatetxt\jaxb\Validation.class
+com\megatim\generatetxt\utilities\Utilities.class
+com\megatim\generatetxt\jaxb\ParamValue.class
+com\megatim\generatetxt\jaxb\EntityList.class
+com\megatim\generatetxt\pojo\ParseResult.class
+com\megatim\generatetxt\constraints\FileToValidateDelimiterValidator.class
+com\megatim\generatetxt\jaxb\PredicateConfig.class
+com\megatim\generatetxt\utilities\ParserUtils.class
+com\megatim\generatetxt\generate\ParseData.class
+com\megatim\generatetxt\pojo\Delimiteur.class
+com\megatim\generatetxt\utilities\ParserUtils$1.class
+com\megatim\generatetxt\enums\DataType.class
+com\megatim\generatetxt\model\TypeFichier.class
+com\megatim\generatetxt\jaxb\Assertion.class
+com\megatim\generatetxt\model\TruncatedElement.class
+com\megatim\generatetxt\App.class
+com\megatim\generatetxt\constraints\FileToValidateDelimiterConstraint.class
+com\megatim\generatetxt\model\AlphaNumeriqueField.class
+com\megatim\generatetxt\jaxb\Entity.class
+com\megatim\generatetxt\pojo\Constantes.class
+com\megatim\generatetxt\pojo\FileToValidate.class
+com\megatim\generatetxt\pojo\ResultFileParsing.class
+com\megatim\generatetxt\model\MetaAlphaNumeriqueField.class
diff --git a/generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..7528f1c
--- /dev/null
+++ b/generatetxt/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,23 @@
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\jaxb\ParamValue.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\model\TypeFichier.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\pojo\FileToValidateDescription.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\pojo\Constantes.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\constraints\FileToValidateDelimiterConstraint.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\jaxb\EntityList.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\jaxb\Validation.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\jaxb\Entity.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\utilities\ParserUtils.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\App.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\jaxb\Assertion.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\model\MetaAlphaNumeriqueField.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\pojo\Delimiteur.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\pojo\FileToValidate.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\enums\DataType.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\generate\ParseData.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\model\AlphaNumeriqueField.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\pojo\ResultFileParsing.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\utilities\Utilities.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\constraints\FileToValidateDelimiterValidator.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\pojo\ParseResult.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\model\TruncatedElement.java
+C:\Users\ASUS\Documents\NetBeansProjects\csv_to_txt\generatetxt\src\main\java\com\megatim\generatetxt\jaxb\PredicateConfig.java
diff --git a/generatetxt/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/generatetxt/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/generatetxt/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst

--
Gitblit v1.10.0