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(); } /** * formatIdEdeal: génère l'ID Edeal en 16 Caractères. * * * {talendTypes} String * * {Category} EDealUtils * * {example} formatIdEdeal(12154332) */ public static String formateIdEdeal(Long value) { return prefixeUnique + String.format("%010X", value).toLowerCase(); } }