package routines;

public class EDealUtils {
	private static String basid;
	private static String prefixeUnique;
	private static long bascounter = 0;
	
    /**
     * getIdEdeal: initialisation des compteurs uniques edeal.
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} EDealUtils
     * 
     * {param} String(basid) le compteur actuel sous sa forme hexadecimale
     * {param} Long(bascounter) le compteur actuel sous sa forme entiere
     * 
     * {example} initCompteurs("0004CD000000EF13", 1245);
     */
	public static void initCompteurs(String id, Long counter) {
		basid = id;
		bascounter = counter.longValue();
		// les 6 premiers caractères du basid correspondent au n° de licence edeal préfixé par des 0. 
		// on remplace le 1er zéro par un "1" pour différencier les lignes créées via Talend
		prefixeUnique = "1" + basid.substring(1, 6);
	}
	
    /**
     * getBasid: récupération du champ basid
     * 
     * {talendTypes} String
     * 
     * {Category} EDealUtils
     */
	public static String getBasid() {
		return basid;
	}
	
    /**
     * getBasid: récupération du champ basid
     * 
     * {talendTypes} long
     * 
     * {Category} EDealUtils
     */
	public static long getBascounter() {
		return bascounter;
	}
	
    /**
     * getIdEdeal: génère l'ID Edeal en 16 Caractères.
     * 
     * 
     * {talendTypes} String
     * 
     * {Category} EDealUtils
     * 
     * {example} getIdEdeal()
     */
    public static String getIdEdeal() {
    	// incrémentation du compteur numérique 
    	bascounter++;
    	
    	// incrémentation du compteur héxadécimal
		return prefixeUnique + String.format("%010X", bascounter).toLowerCase();
	}
   
}
