Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 788 → Rev 789

/trunk/src/org/tela_botanica/client/modeles/aDonnee.java
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()
*/