23,13 → 23,36 |
*/ |
public abstract class aDonnee extends BaseModelData implements Serializable { |
|
/** |
* Identifiant pour sérialisé l'objet... |
*/ |
private static final long serialVersionUID = 3527760464061629791L; |
|
public static final String TYPE_AUTRE = "AUTRE"; |
public static final String TYPE_TOTAL = "TOTAL"; |
public static final String SEPARATEUR_TYPE_VALEUR = "##"; |
public static final String SEPARATEUR_VALEURS = ";;"; |
public static final String SEPARATEUR_DONNEES = "||"; |
|
protected abstract String getPrefixe(); |
|
public String getDateModification() { |
return (String) renvoyerValeurCorrecte("cmhl_date_modification"); |
} |
|
public String getNotes() { |
return (String) renvoyerValeurCorrecte("cmhl_notes"); |
} |
|
public String getIdModifierPar() { |
return (String) renvoyerValeurCorrecte("cmhl_ce_modifier_par"); |
} |
|
public String getIdEtat() { |
return (String) renvoyerValeurCorrecte("cmhl_ce_etat"); |
} |
|
public String getIp() { |
return (String) renvoyerValeurCorrecte("cmhl_ip"); |
} |
|
protected void initialiserModele(JSONObject jsonObjet) { |
// l'objet JSON est une table de hachage |
Set<String> im = jsonObjet.keySet(); |
86,11 → 109,11 |
if (valeur instanceof String) { |
String chaineExistante = renvoyerValeurCorrecte(champ); |
if (chaineExistante.equals("")) { |
this.set(champ, type+"##"+valeur); |
this.set(champ, type+SEPARATEUR_TYPE_VALEUR+valeur); |
} else { |
// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons |
if (!chaineExistante.matches("(^|;;)"+type+"##"+valeur+"(;;|$)")) { |
this.set(champ, chaineExistante+";;"+type+"##"+valeur); |
if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+valeur+"("+SEPARATEUR_VALEURS+"|$)")) { |
this.set(champ, chaineExistante+";;"+type+SEPARATEUR_TYPE_VALEUR+valeur); |
} |
} |
} |
99,11 → 122,11 |
protected void supprimerTypeDansChaineDenormalise(String champ, String type) { |
String chaineExistante = renvoyerValeurCorrecte(champ); |
if (!chaineExistante.equals("")) { |
if (chaineExistante.matches("(?:^|.*;;)"+type+"##.*")) { |
chaineExistante = chaineExistante.replaceFirst("(^|.*;;)"+type+"##.*?(;;.*|$)", "$1$2"); |
chaineExistante = chaineExistante.replaceAll("(.*);;;;(.*)", "$1;;$2"); |
chaineExistante = chaineExistante.replaceAll("^;;(.*)", "$1"); |
chaineExistante = chaineExistante.replaceAll("(.*);;$", "$1"); |
if (chaineExistante.matches("(?:^|.*"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+".*")) { |
chaineExistante = chaineExistante.replaceFirst("(^|.*"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+".*?("+SEPARATEUR_VALEURS+".*|$)", "$1$2"); |
chaineExistante = chaineExistante.replaceAll("(.*)"+SEPARATEUR_VALEURS+SEPARATEUR_VALEURS+"(.*)", "$1"+SEPARATEUR_VALEURS+"$2"); |
chaineExistante = chaineExistante.replaceAll("^"+SEPARATEUR_VALEURS+"(.*)", "$1"); |
chaineExistante = chaineExistante.replaceAll("(.*)"+SEPARATEUR_VALEURS+"$", "$1"); |
this.set(champ, chaineExistante); |
} |
} |
131,8 → 154,8 |
this.set(champ, valeur); |
} else { |
// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons |
if (!chaineExistante.matches("(^|;;)"+valeur+"(;;|$)")) { |
this.set(champ, chaineExistante+";;"+valeur); |
if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+valeur+"("+SEPARATEUR_VALEURS+"|$)")) { |
this.set(champ, chaineExistante+SEPARATEUR_VALEURS+valeur); |
} |
} |
} |
149,7 → 172,7 |
if (valeur == null || valeur.equals("")) { |
this.set(champ, ""); |
} else if (valeur instanceof String) { |
this.set(champ, type+"##"+valeur); |
this.set(champ, type+SEPARATEUR_VALEURS+valeur); |
} |
} |
|
162,7 → 185,7 |
String sortie = renvoyerValeurCorrecte(champ); |
|
if (!sortie.equals("")) { |
sortie = sortie.replaceFirst("^AUTRE##", ""); |
sortie = sortie.replaceFirst("^"+TYPE_AUTRE+SEPARATEUR_TYPE_VALEUR, ""); |
} |
|
return sortie; |
171,10 → 194,10 |
protected String getInfoDenormaliseParType(String chaineExistante, String type) { |
String sortie = ""; |
if (!chaineExistante.equals("")) { |
String[] valeurs = chaineExistante.split(";;"); |
String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS); |
for (int i = 0; i < valeurs.length; i++) { |
if (valeurs[i].startsWith(type+"##")) { |
sortie = valeurs[i].replaceFirst("^"+type+"##", ""); |
if (valeurs[i].startsWith(type+SEPARATEUR_TYPE_VALEUR)) { |
sortie = valeurs[i].replaceFirst("^"+type+SEPARATEUR_TYPE_VALEUR, ""); |
} |
} |
} |
196,15 → 219,15 |
String valeurChamp = renvoyerValeurCorrecte(champ); |
|
if ((valeurChamp!=null)&&(!valeurChamp.trim().equals(""))) { |
String[] valeurs = valeurChamp.split(";;"); |
String[] valeurs = valeurChamp.split(SEPARATEUR_VALEURS); |
|
if (valeurs.length > 0) { |
if (valeurs[0].contains("##")) { |
if (valeurs[0].contains(SEPARATEUR_TYPE_VALEUR)) { |
// Les champs sont typés, on en fait une Map |
HashMap<String,String> mapValeurs = new HashMap<String,String>(); |
for (int i = 0; i < valeurs.length; i++) { |
String typeEtValeur[] = valeurs[i].split("##"); |
mapValeurs.put(typeEtValeur[1], typeEtValeur[0]); |
String typeEtValeur[] = valeurs[i].split(SEPARATEUR_TYPE_VALEUR); |
mapValeurs.put(typeEtValeur[1], typeEtValeur[0]); |
} |
retourObjet = mapValeurs; |
} |
245,23 → 268,23 |
String chaineExistante = renvoyerValeurCorrecte(champ); |
|
if (chaineExistante.equals("")) { |
this.set(champ, type+"##"+valeur); |
this.set(champ, type+SEPARATEUR_TYPE_VALEUR+valeur); |
} else { |
String[] valeurs = chaineExistante.split(";;"); |
String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS); |
HashMap<String,String> valeursModifiees = new HashMap<String,String>(); |
for (int i = 0; i < valeurs.length; i++) { |
if (valeurs[i].startsWith(type+"##")) { |
valeursModifiees.put(type, type+"##"+valeur); |
if (valeurs[i].startsWith(type+SEPARATEUR_TYPE_VALEUR)) { |
valeursModifiees.put(type, type+SEPARATEUR_TYPE_VALEUR+valeur); |
GWT.log("Valeur:"+valeurs[i], null); |
} else if (i == (valeurs.length -1) && !valeurs[i].startsWith(type+"##")) { |
valeursModifiees.put(valeurs[i].split("##")[0], valeurs[i]); |
valeursModifiees.put(type, type+"##"+valeur); |
} else if (i == (valeurs.length -1) && !valeurs[i].startsWith(type+SEPARATEUR_TYPE_VALEUR)) { |
valeursModifiees.put(valeurs[i].split(SEPARATEUR_TYPE_VALEUR)[0], valeurs[i]); |
valeursModifiees.put(type, type+SEPARATEUR_TYPE_VALEUR+valeur); |
} else { |
valeursModifiees.put(valeurs[i].split("##")[0], valeurs[i]); |
valeursModifiees.put(valeurs[i].split(SEPARATEUR_TYPE_VALEUR)[0], valeurs[i]); |
} |
} |
String[] tableauValeursModifiees = valeursModifiees.values().toArray(new String[valeursModifiees.size()]); |
this.set(champ, UtilArray.implode(tableauValeursModifiees, ";;")); |
this.set(champ, UtilArray.implode(tableauValeursModifiees, SEPARATEUR_VALEURS)); |
GWT.log("Chaine:"+chaineExistante+"-"+renvoyerValeurCorrecte(champ), null); |
} |
} |
270,12 → 293,12 |
protected String getInfoDenormaliseParPosition(String chaineExistante, int position) { |
String sortie = ""; |
if (!chaineExistante.equals("")) { |
String[] valeurs = chaineExistante.split(";;"); |
String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS); |
if (valeurs.length >= position) { |
for (int i = 0; i < valeurs.length; i++) { |
if (i == (position - 1)) { |
if (valeurs[i].contains("##")) { |
sortie = valeurs[i].replaceFirst("^[^#]+##", ""); |
if (valeurs[i].contains(SEPARATEUR_TYPE_VALEUR)) { |
sortie = valeurs[i].replaceFirst("^[^#]+"+SEPARATEUR_VALEURS, ""); |
} else { |
sortie = valeurs[i]; |
} |
305,7 → 328,7 |
if (chaineExistante.equals("")) { |
this.set(champ, valeur); |
} else { |
String[] valeurs = chaineExistante.split(";;"); |
String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS); |
if (valeurs.length >= position) { |
for (int i = 0; i < valeurs.length; i++) { |
if (i == (position - 1)) { |
313,7 → 336,7 |
break; |
} |
} |
this.set(champ, UtilArray.implode(valeurs, ";;")); |
this.set(champ, UtilArray.implode(valeurs, SEPARATEUR_VALEURS)); |
} |
} |
} |
322,7 → 345,7 |
protected void supprimerChaineDenormaliseParPosition(String champ, int position) { |
String chaineExistante = renvoyerValeurCorrecte(champ); |
if (!chaineExistante.equals("")) { |
String[] valeurs = chaineExistante.split(";;"); |
String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS); |
HashMap<String,String> valeursModifiees = new HashMap<String,String>(); |
if (valeurs.length >= position) { |
for (int i = 0; i < valeurs.length; i++) { |
331,31 → 354,11 |
} |
} |
String[] tableauValeursModifiees = valeursModifiees.values().toArray(new String[valeursModifiees.size()]); |
this.set(champ, UtilArray.implode(tableauValeursModifiees, ";;")); |
this.set(champ, UtilArray.implode(tableauValeursModifiees, SEPARATEUR_VALEURS)); |
} |
} |
} |
|
public String getDateModification() { |
return (String) renvoyerValeurCorrecte("cmhl_date_modification"); |
} |
|
public String getNotes() { |
return (String) renvoyerValeurCorrecte("cmhl_notes"); |
} |
|
public String getIdModifierPar() { |
return (String) renvoyerValeurCorrecte("cmhl_ce_modifier_par"); |
} |
|
public String getIdEtat() { |
return (String) renvoyerValeurCorrecte("cmhl_ce_etat"); |
} |
|
public String getIp() { |
return (String) renvoyerValeurCorrecte("cmhl_ip"); |
} |
|
/** (non-Javadoc) |
* @see java.lang.Object#toString() |
*/ |