package routines;

public class CustomCode {

    /**
     * getCurtomCode: not return value, only print "hello" + typeMsg.
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} CustomCode
     * 
     * {param} string("world") input: The string need to be printed.
     * 
     * {example} getCurtomCode("world") # hello world !.
     */
    public static int getCustomCode(String typeMsg) {
        int code = -1; 
    	if (typeMsg == null) {
    		code = -1;
        } else if("ERROR".equals(typeMsg) || "KO".equals(typeMsg)) {
        	code = CustomCode.getErrorCode();
        } else if("WARNING".equals(typeMsg)) {
        	code = CustomCode.getWarningCode();
        }else if("OK".equals(typeMsg)) {
        	code = CustomCode.getWarningCode();
        }
    	
    	return code;
    }
    
    /**
     * getErrorCode: retourne le code d'erreur par défaut : 99
     * 
     * {Category} CustomCode
     * 
     * {example} getErrorCode() # 99.
     */
    public static int getErrorCode() {
    	return 99;
    }
    
    /**
     * getWarningCode: retourne le code de warning par défaut : 1
     * 
     * {Category} CustomCode
     * 
     * {example} getWarningCode() # 1.
     */
    public static int getWarningCode() {
    	return 1;
    }
    
    /**
     * getWarnRejectCode: retourne le code de warning de rejet de fichier : 2
     * 
     * {Category} CustomCode
     * 
     * {example} getWarnRejectCode() # 2.
     */
    public static int getWarnRejectCode() {
    	return 2;
    }
    
    /**
     * getOKCode: retourne le code de warning par défaut : 0
     * 
     * {Category} CustomCode
     * 
     * {example} getOKCode() # 0.
     */
    public static int getOKCode() {
    	return 0;
    }
    
    /**
     * getFileNotFoundCode: retourne le code d'erreur si un fichier est introuvable : 50
     * 
     * {Category} CustomCode
     * 
     * {example} getFileNotFoundCode() # 50.
     */
    public static int getFileNotFoundCode() {
    	return 50;
    }
    
    /**
     * getTruncateTableCode: retourne le code d'erreur pour un vidage de table impossible : 61
     * 
     * {Category} CustomCode
     * 
     * {example} getTruncateTableCode() # 61.
     */
    public static int getTruncateTableCode() {
    	return 61;
    }
    
    /**
     * getConnectionDBCode: retourne le code d'erreur pour une connexion à une BDD impossible : 60
     * 
     * {Category} CustomCode
     * 
     * {example} getConnectionDBCode() # 60.
     */
    public static int getConnectionDBCode() {
    	return 60;
    }
    
    /**
     * getSequenceCode: retourne le code d'erreur lors d'une création de séquence
     * 
     * {Category} CustomCode
     * 
     * {example} getSequenceCode() # 62.
     */
    public static int getSequenceCode() {
    	return 62;
    }
    
    /**
     * getIndexCode: retourne le code d'erreur pour la création d'un indexe impossible : 63
     * 
     * {Category} CustomCode
     * 
     * {example} getIndexCode() # 63.
     */
    public static int getIndexCode() {
    	return 63;
    }

    /**
     * getAnalyzeCode: retourne le code d'erreur pour l'analyse d'une table : 64
     * 
     * {Category} CustomCode
     * 
     * {example} getAnalyzeCode() # 64.
     */
    public static int getAnalyzeCode() {
    	return 64;
    }
    
    /**
     * getAnalyzeCode: retourne le code d'erreur pour l'activation/désactivation des contraintes d'une table : 65/66
     * 
     * {Category} CustomCode
     * 
     * {param} Integer() input: mode
     * 
     * {example} getConstraintsCode(1) # 65.
     */
    public static int getConstraintsCode(Integer mode) {
    	if(mode!= null && mode.equals(1)) {
    		return 65;
    	} else {
    		return 66;
    	}
    }
}
