Rev 208 | Rev 242 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.tela_botanica.client.util.UtilArray;
import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
/**
* @author jpm
*
*/
public abstract class aDonnee extends BaseModelData implements Serializable {
/**
* Identifiant pour sérialisé l'objet...
*/
private static final long serialVersionUID = 3527760464061629791L;
/**
* Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
* cette fonction qui retire les charactères nuls qui font planter
* l'affichage, il ne faut pas utiliser get directement
*
* @param cle
* @return la valeur associée à la clé
*/
protected String renvoyerValeurCorrecte(String cle) {
String sortie = "";
if (this.get(cle) != null) {
String valeur = this.get(cle);
if (! valeur.equals("null")) {
char nullChar = '\u0000';
String sNull = "" + nullChar;
valeur = valeur.replaceAll(sNull, "");
sortie = valeur;
}
}
return sortie;
}
/**
* Permet de constuire correctement une chaine dénormalisée (champ de type "truk").
*
* @param champ le nom du champ dénormalisé
* @param type le type de la valeur à ajouter
* @param valeur la valeur à ajouter
*/
protected void setChaineDenormalise(String champ, String type, Object valeur) {
if (valeur instanceof String) {
String chaineExistante = renvoyerValeurCorrecte(champ);
if (chaineExistante.equals("")) {
this.set(champ, type+"##"+valeur);
} else {
this.set(champ, chaineExistante+";;"+type+"##"+valeur);
}
}
}
/**
* Permet de constuire correctement une chaine dénormalisée unique (champ de type "ce_truk").
*
* @param champ le nom du champ dénormalisé
* @param type le type de la valeur à ajouter
* @param valeur la valeur à ajouter
*/
protected void setChaineDenormaliseUnique(String champ, String type, Object valeur) {
if (valeur instanceof String) {
this.set(champ, type+"##"+valeur);
}
}
protected String getInfoDenormaliseParType(String chaineExistante, String type) {
String sortie = "";
if (!chaineExistante.equals("")) {
String[] valeurs = chaineExistante.split(";;");
for (int i = 0; i < valeurs.length; i++) {
if (valeurs[i].startsWith(type+"##")) {
sortie = valeurs[i].replaceFirst("^"+type+"##", "");
}
}
}
return sortie;
}
/**
* Permet de modifier correctement une chaine dénormalisée (champ de type "truk").
* Remplace par la valeur de la première instance du type indiqué dans la chaine dénormalisée.
*
* @param champ le nom du champ dénormalisé
* @param type le type de la valeur à modifier
* @param valeur la valeur pour le type en question
*/
protected void setChaineDenormaliseParType(String champ, String type, Object valeur) {
if (valeur instanceof String) {
String chaineExistante = renvoyerValeurCorrecte(champ);
if (chaineExistante.equals("")) {
this.set(champ, type+"##"+valeur);
} else {
String[] valeurs = chaineExistante.split(";;");
for (int i = 0; i < valeurs.length; i++) {
if (valeurs[i].startsWith(type+"##") || i == (valeurs.length -1)) {
valeurs[i] = type+"##"+valeur;
break;
}
}
this.set(champ, UtilArray.implode(valeurs, ";;"));
}
}
}
protected String getInfoDenormaliseParPosition(String chaineExistante, int position) {
String sortie = "";
if (!chaineExistante.equals("")) {
String[] valeurs = chaineExistante.split(";;");
if (valeurs.length >= position) {
for (int i = 0; i < valeurs.length; i++) {
if (i == (position - 1)) {
if (valeurs[i].contains("##")) {
sortie = valeurs[i].replaceFirst("^[^#]+##", "");
} else {
sortie = valeurs[i];
}
break;
}
}
}
}
return sortie;
}
/**
* Permet de modifier correctement une chaine dénormalisée (champ de type "truk").
* Remplace par la valeur l'instance dont la position a été indiquée.
*
* @param champ le nom du champ dénormalisé
* @param position le type de la valeur à modifier
* @param valeur la valeur à remplacer à la position indiquée
*/
protected void setChaineDenormaliseParPosition(String champ, int position, Object valeur) {
if (valeur instanceof String) {
String chaineExistante = renvoyerValeurCorrecte(champ);
if (!chaineExistante.equals("")) {
String[] valeurs = chaineExistante.split(";;");
if (valeurs.length == 0) {
this.set(champ, valeur);
} else if (valeurs.length >= position) {
for (int i = 0; i < valeurs.length; i++) {
if (i == (position - 1)) {
valeurs[i] = (String) valeur;
break;
}
}
this.set(champ, UtilArray.implode(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()
*/
public String toString() {
String sortie = "";
// Champs du BaseModelData
Set<String> proprietes = this.getProperties().keySet();
for (Iterator<String> it = proprietes.iterator(); it.hasNext();) {
String cle = it.next();
if (!this.get(cle).equals("")) {
sortie += cle+" : "+this.get(cle)+"\n";
}
}
return sortie;
}
}