package routines; import java.net.InetAddress; import java.text.Normalizer; public class CustomString { /** * getHostName: Retourne le nom d'hôte d'exécution du job * * {Category} CustomString * * {example} getHostName() # localhost. */ public static String getHostName() { String hostName = ""; try { hostName = InetAddress.getLocalHost().getHostName(); } catch (Exception e) { } return hostName; } /** * removeAccent: supprime tous les accents d'une chaine de caractère * * {Category} CustomString * * {example} removeAccent(école) # ecole. */ public static String removeAccent(String inputString) { return Normalizer.normalize(inputString, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", ""); } /** * isNullOrEmpty: retourne true si la valeur est nulle ou vide * * * {talendTypes} String * * {Category} CustomString * * {param} string("world") input: Chaine a tester * * {example} isNullOrEmpty("hello") # false. */ public static boolean isNullOrEmpty(String str) { boolean isNullorEmptyVal = false; if (str == null || ("").equals(str)) { isNullorEmptyVal = true; } return isNullorEmptyVal; } /** * substrLibelle: renvoie le libellé tronqué si la longueur de la chaine dépasse 250 * * * {talendTypes} String * * {Category} CustomString * * {param} string("world") input: Chaine a tester * * {example} substrLibelle("hello") # hello. */ public static String substrLibelle(String str) { String rtString; if (str == null || ("").equals(str)) { rtString = null; } else { rtString = (str.length() > 250) ? str.substring(0, 249) : str; } return rtString; } /** * replaceNullOrEmpyByNonRenseigne: remplace les valeurs nulles ou vides par Non renseigné * * * {talendTypes} String * * {Category} User Defined * * {param} String input. * * */ public static String replaceNullByNonRenseigne(String str) { String s = "Non applicable"; if(str == null || ("").equals(str) ) { return s; } else { return str; } } /** * replaceNullByInconnu: remplace les valeurs nulles par Inconnu * * * {talendTypes} String * * {Category} User Defined * * {param} String input. * * */ public static String replaceNullByInconnu(String str) { String s = "Inconnu"; if(str == null || ("").equals(str) ){ return s; } else { return str; } } /** * replaceRejectMessage: 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} replaceRejectMessage("empty or null") # Champ NULL ou vide */ public static String replaceRejectMessage(String libEnglish) { String rejectMessage = ""; if (libEnglish != null && !("").equals(libEnglish)) { rejectMessage = ((libEnglish.replaceAll("exceed max length", "Exc\u00e8de taille maximum")).replaceAll("wrong type", "Typage incorrect").replaceAll("empty or null", "Champ NULL")).replaceAll("wrong DATE pattern or wrong DATE data", "Date incorrecte"); } return rejectMessage; } /** * MiseEnFormeTelephone: Utiliser la règle sur la gestion des téléphones * * * {talendTypes} String * * {Category} CustomString * * {param1, param2} String input. * * */ /* Suppression des caractères suivants : « . », « - » et « / » mise en place du séparateur « espace » si ce n’est pas déjà le cas mise en place l’indicatif international « + 33 » si ce n’est pas déjà le cas contrôle du respect du format : + 33 X XX XX XX XX modification du champ cible : */ public static String MiseEnFormeTelephone(String pays, String telephone) { if (telephone == null) { return telephone; } telephone=telephone.replaceAll(" ",""); if (("").equals(telephone)) { return null; } String tel; tel=""; if (pays == null) { return telephone; } else if(!("FRA").equals(pays)) { return telephone; } else { telephone=telephone.replaceAll("\\.",""); telephone=telephone.replaceAll("-",""); telephone=telephone.replaceAll("/",""); telephone=telephone.replaceAll(" ",""); telephone=telephone.replaceAll("\\+33",""); if (telephone.length()<6){ return "erreur"; } if (!"0".equals(telephone.substring(0,1))) { telephone= "0"+telephone.substring(0); } if (telephone.length()!=10){ return "erreur"; } for (int i=2; i <=telephone.length(); i=i+2){ tel=tel+telephone.substring(i-2, i)+" "; } telephone=tel; telephone="+33 " + telephone.substring(1); return telephone; } } /** * IsErreur: Renvoie 0 si égale à erreur sinon 1 * * * {talendTypes} int * * {Category} CustomString * * {param} String input. * * */ /* Suppression des caractères suivants : « . », « - » et « / » mise en place du séparateur « espace » si ce n’est pas déjà le cas mise en place l’indicatif international « + 33 » si ce n’est pas déjà le cas contrôle du respect du format : + 33 X XX XX XX XX modification du champ cible : */ public static int IsErreur(String inputValue) { return "erreur".equals(inputValue) ? 1 : 0; } /** * IsMail: Utiliser la règle sur la gestion des mails * * * {talendTypes} String * * {Category} CustomString * * {param} String input. * * */ //- contrôle du respect du format : [chaineCaracteres]+@+[chaineCaracteres]+.+[chaineCaracteres] public static int IsMail(String mail) { if (mail == null || ("").equals(mail)) { return 0; } else if(mail.matches(".*@.*\\..*")) { return 0; } else return 1; } /** * IsUrl: Utiliser la règle sur la gestion des urls * * * {talendTypes} String * * {Category} CustomString * * {param} String input. * * */ // contrôle du respect du format : [http://]+[chaineCaractères]+.+[chaineCaractères] public static int IsUrl(String url) { if (url == null) { return 0; } else if(url.matches(".*http://.*\\..*")) { return 0; } else return 1; } /** * VerifCPFrance: Utiliser la règle sur la gestion du code postal pour le pays FRANCE * * * {talendTypes} String * * {Category} CustomString * * {param} String input. * * */ // doit contenir que des chiffre sir le pays = "FRA" public static int VerifCPFrance(String pays, String cp) { if (pays == null || cp == null) { return 0; } else if(("FRA").equals(pays) && !cp.matches("[0-9]*")) { return 1; } else return 0; } /** * MiseEnFormePrenom: donne le 1er caractère en majuscule puis les autres en minuscule * * * {talendTypes} String * * {Category} CustomString * * {param1} String input. * */ public static String MiseEnFormePrenom(String prenom) { if (prenom == null) { return null; } return prenom.substring(0,1).toUpperCase() + prenom.substring(1).toLowerCase(); } /** * VerifAnnee: Utiliser la règle sur la gestion sur l'année ( doit avoir le format AAAA) * * * {talendTypes} String * * {Category} CustomString * * {param} String input. * * */ public static int VerifAnnee(Integer annee) { if (annee == null){ return 0; } else if(annee >= 1000 && annee < 10000 ) { return 0; } else return 1; } }