1,10 → 1,14 |
package org.tela_botanica.client.modeles; |
|
import java.io.Serializable; |
import java.util.Collections; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.LinkedList; |
import java.util.List; |
import java.util.Map; |
import java.util.Set; |
import java.util.TreeSet; |
|
import org.tela_botanica.client.util.UtilArray; |
|
66,6 → 70,26 |
} |
} |
|
protected void supprimerTypeDansChaineDenormalise(String champ, String type) { |
String chaineExistante = renvoyerValeurCorrecte(champ); |
if (!chaineExistante.equals("")) { |
// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons |
if (chaineExistante.matches("(^|;;)"+type+"##")) { |
chaineExistante = chaineExistante.replaceFirst(type+"##", ""); |
chaineExistante = chaineExistante.replaceAll(";;;;", ";;"); |
chaineExistante = chaineExistante.replaceAll("(^;;|;;$)", ""); |
this.set(champ, chaineExistante); |
} |
} |
} |
|
protected void remplacerTypeDansChaineDenormalise(String champ, String type, Object valeur) { |
if (valeur != null && !valeur.equals("")) { |
ajouterChaineDenormaliseAvecType(champ, type, valeur); |
} else { |
supprimerTypeDansChaineDenormalise(champ, type); |
} |
} |
/** |
* Ajoute un nouvel élément sans type à une chaine dénormalisée. |
* Champ de type "truk" contenant seulement des valeurs séparées par ";;". |
282,9 → 306,10 |
|
// Champs du BaseModelData |
Set<String> proprietes = this.getProperties().keySet(); |
for (Iterator<String> it = proprietes.iterator(); it.hasNext();) { |
TreeSet<String> proprietesTriees = new TreeSet<String>(proprietes); |
for (Iterator<String> it = proprietesTriees.iterator(); it.hasNext();) { |
String cle = it.next(); |
if (!this.get(cle).equals("")) { |
if (this.get(cle) != null && !this.get(cle).equals("")) { |
sortie += cle+" : "+this.get(cle)+"\n"; |
} |
} |
291,4 → 316,36 |
|
return sortie; |
} |
|
public Boolean comparer(BaseModelData objetAComparer) { |
Boolean retour = true; |
Map<String, Object> a = this.getProperties(); |
Map<String, Object> b = objetAComparer.getProperties(); |
if (a.size() != b.size()) { |
retour = false; |
} else { |
Set<String> cles = a.keySet(); |
Iterator<String> it = cles.iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
if (a.get(cle) != null && !a.get(cle).equals(b.get(cle))) { |
retour = false; |
break; |
} |
} |
} |
|
return retour; |
} |
|
public Object cloner(BaseModelData nouvelleInstance) { |
Map<String, Object> proprietes = this.getProperties(); |
Set<String> cles = proprietes.keySet(); |
for (Iterator<String> it = cles.iterator(); it.hasNext();) { |
String cle = it.next(); |
nouvelleInstance.set(cle, this.get(cle)); |
} |
|
return nouvelleInstance; |
} |
} |