package routines;

public class CustomMessage {

    /**
     * getConnectionError: retourne le mesage d'erreur lors d'une connexion à une BDD.
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string("DWH") input: Nom de la BDD
     * 
     * {example} getConnectionError("DWH") # "Erreur de connexion à la base de données DWH.
     */
    public static String getConnectionError(String connectionName) {
    	String message = "Erreur de connexion \u00e0 la base de donn\u00e9es";
        if (connectionName != null && !("").equals(connectionName)) {
            message += " " + connectionName;
        }
        return message;
    }
    
    /**
     * getFileNotFoudError: retourne le mesage d'erreur lors d'un fichier introuvable.
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string("") input: Nom du fichier
     * 
     * {example} getFileNotFoudError("Fonction.csv" ) # Fichier Fonction.csv introuvable depuis le job EDRH__MRJ__DWH__REF_FONCTION.
     */
    public static String getFileNotFoundError(String fileName) {
    	String message = "Fichier " + fileName +" introuvable";
        return message;
    }
    
    /**
     * getFileNotFoudError: retourne le mesage d'erreur lors d'un fichier introuvable.
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string(jobName) input: Nom du job
     * {param} string("") input: Nom du fichier
     * 
     * {example} getFileNotFoudError("EDRH__MRJ__DWH__REF_FONCTION", "Fonction.csv" ) # Fichier Fonction.csv introuvable depuis le job EDRH__MRJ__DWH__REF_FONCTION.
     */
    public static String getFileNotFoundError(String jobName, String fileName) {
    	String message;
        if (fileName != null && !("").equals(fileName)) {
            message = "Fichier " + fileName +" introuvable depuis le job " + jobName;
        } else {
        	message = "Fichier introuvable depuis le job " + jobName;
        }
        return message;
    }
    
    /**
     * getTruncateError: retourne le mesage d'erreur lors d'un truncate de table.
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string(tableName) input: Nom de la table
     * 
     * {example} getTruncateError("COLLECTE_AGENT") # Erreur lors du vidage de la table COLLECTE_AGENT.
     */
    public static String getTruncateError(String tableName) {
    	String message;
        if (tableName != null && !("").equals(tableName)) {
            message = "Erreur lors du vidage de la table " + tableName;
        } else {
        	message = "Erreur lors du vidage d'une table";
        }
        return message;
    }
    
    /**
     * getProcessError: retourne le mesage d'erreur lors d'un plantage
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string(jobName) input: Nom du job (par défaut mettre la variable Talend jobName)
     * 
     * {example} getProcessError("EDRH__ALIMENTATION__DIM") # "Erreur dans le job EDRH__ALIMENTATION__DIM"
     */
    public static String getProcessError(String jobName) {
    	String message = "Erreur de traitement";
        if (jobName != null && !("").equals(jobName)) {
            message = "Erreur dans le job " + jobName;
        }
        return message;
    }
    
    /**
     * getProcessError: retourne le mesage d'erreur lors d'un plantage en précisant le sous-job
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string(jobName) input: Nom du job (par défaut mettre la variable Talend jobName)
     * {param} string("") input: Sous job impacté
     * 
     * {example} getProcessError("EDRH__MRJ__DWH__FONCTION", "INSERTION") # "Erreur dans le job EDRH__MRJ__DWH__FONCTION (INSERTION)"
     */
    public static String getProcessError(String jobName, String subJob) {
    	String message = "Erreur dans le job " + jobName + " (" + subJob + ")";
        return message;
    }
    
    /**
     * getProcessError: retourne le mesage d'erreur lors d'un plantage pour la création d'un index
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string(indexName) input: Nom de l'index
     * 
     * {example} getIndexError("IDX_NAME") # "Erreur lors de la création de l'indexe IDX_NAME"
     */
    public static String getIndexError(String indexName) {
    	String message = "Erreur lors de la création de l'indexe " + indexName;
        return message;
    }
    
    /**
     * getAnalyzeError: retourne le mesage d'erreur lors d'un plantage pour l'analyse d'une table
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string(tableName) input: Nom de la table
     * 
     * {example} getAnalyzeError("AGENT") # "Erreur lors de l'analyse de la table AGENT"
     */
    public static String getAnalyzeError(String tableName) {
    	String message = "Erreur lors de l'analyse de la table " + tableName;
        return message;
    }
    
    /**
     * getSequenceError: retourne le mesage d'erreur lors d'un plantage de création de séquence
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string("") input: Séquence
     * 
     * {example} getSequenceError("SEQ_SUIVI_ABSENTEISME_AGENT") # "Erreur lors de la création de la séquence SEQ_SUIVI_ABSENTEISME_AGENT"
     */
    public static String getSequenceError(String sequence) {
    	String message = "Erreur lors de la cr\u00e9ation de la s\u00e9quence " + sequence;
        return message;
    }
    
    /**
     * getSequenceError: retourne le mesage d'erreur lors d'un plantage d'activation/désactivation de contrainte
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string("") input: tableName
     * {param} Integer() input: mode
     * 
     * {example} getConstraintError("SUIVI_RUBRIQUES_PAIE_AGT", 1) # "Erreur lors de l'activation des contraintes de la table SUIVI_RUBRIQUES_PAIE_AGT
     */
    public static String getConstraintError(String tabName, Integer mode) {
    	String message = "Erreur lors de " + ((mode != null && mode.equals(1)) ? "l'activation" : "la d\u00e9sactivation") + " des contraintes de la table " + tabName;
        return message;
    }
    
    /**
     * getRejectMessage: traduit en français les causes de rejet issu du composant tSchemaComplianceCheck
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string() input: cause de rejet issu du composant tSchemaComplianceCheck
     * 
     * {example} getRejectMessage("empty or null") # Champ NULL ou vide
     */
    public static String getRejectMessage(String libEnglish) {
    	String rejectMessage;
        if (libEnglish != null && !("").equals(libEnglish)) {
        	if(("wrong type").equals(libEnglish)) {
        		rejectMessage = "Typage incorrect";
        	} else if(("empty or null").equals(libEnglish)) {
        		rejectMessage = "Champ NULL ou vide";
        	} else if(("empty or null|wrong type").equals(libEnglish)) {
        		rejectMessage = "Champ NULL ou vide et typage incorrect ";
        	} else {
        		rejectMessage = libEnglish;
        	}
        } else {
        	rejectMessage = null;
        }
        return rejectMessage;
    }
    
    /**
     * getRejectDoublonMessage: renvoi le message indiquant un doublon de ligne
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string() input: champ impacté
     * 
     * {example} getRejectDoublonMessage("Code_Fonction") # Doublon sur le champ Code_Fonction
     */
    public static String getRejectDoublonMessage(String champ) {
    	String rejectMessage;
        if (champ != null && !("").equals(champ)) {
        	rejectMessage = "Doublon sur le " + champ;
        } else {
        	rejectMessage = "Ligne en doublon";
        }
        return rejectMessage;
    }
    
    /**
     * getRejectDoublonMessage: renvoi le message indiquant un doublon de ligne
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {example} getRejectDoublonMessage() # Ligne en doublon
     */
    public static String getRejectDoublonMessage() {    	
        return "Ligne en doublon";
    }
    
    /**
     * getRefNotFoundMessage: renvoi le message indiquant une référence non trouvée
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {example} getRefNotFoundMessage() # Ligne en doublon
     */
    public static String getRefNotFoundMessage() {    	
        return "R\u00e9f\u00e9rence introuvable";
    }
    
    /**
     * getWarnRejectMessage: renvoi le message de rejet de job suite à l'intégration d'un fichier
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomMessage
     * 
     * {param} string("") input: nom du fichier
     * 
     * {example} getWarnRejectMessage("Fonction.csv") # Rejets présents suite à l'intégration du fichier Fonction.csv 
     */
    public static String getWarnRejectMessage(String fileName) {
    	String rejectMessage = "Rejets pr\u00e9sents suite \u00e0 l'int\u00e9gration du fichier " + fileName ;
        
        return rejectMessage;
    }
}
