Subversion Repositories eFlore/Applications.coel

Rev

Rev 1329 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.modeles;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.tela_botanica.client.util.Debug;

import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;

public class Valeur extends aDonnee {
        
        private static final long serialVersionUID = 2278245640718653819L;

        public static final String PREFIXE = "cmlv";
        public static final String COLLECTION_NCD_HERBIER = "2157";
        public static String[] champsObligatoires = {"cmlv_id_valeur"};
        
        public Valeur() {
        }
        
        public Valeur(JSONObject liste) {
                // l'objet JSON est une table de hachage
                Set<String> im = liste.keySet();

                // Parcourt pour chaque clé
                for (Iterator<String> it = im.iterator(); it.hasNext();) {
                        // Si elle est associée à une valeur, nous l'ajoutons
                        String cle = it.next();
                        // Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
                        String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
                        if (liste.get(cle).isString() != null) {
                                String valeur = liste.get(cle).isString().stringValue();
                                this.set(cleObjet, valeur);
                        } else {
                                // Sinon, nous ajoutons la clé avec une valeur vide
                                String valeur = " ";
                                this.set(cleObjet, valeur);
                        }
                }
        }
        
        public Valeur(String id, String nom, String abr, String description) {
                this.set("id_valeur", id);
                this.set("nom", nom);
                this.set("abreviation", abr);
                this.set("description", description);
        }

        public Valeur(ModelData model)
        {               
                Map<String, Object> a = model.getProperties();

                Set<String> cles = a.keySet();
                Iterator<String> it = cles.iterator();
                while (it.hasNext()) {
                        String cle = it.next();                 
                        if (a.get(cle) != null) {
                                String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
                                this.set(cleObjet, a.get(cle));
                        }
                }
        }
        
        @Override
        protected String getPrefixe() {
                return PREFIXE;
        }
        
        protected String[] getChampsObligatoires()      {
                return champsObligatoires;
        }
        
        /** Accesseur à l'identifiant de la valeur.
         * 
         * @return String l'identifiant de la valeur.
         */
        public String getId() {
                return (String) renvoyerValeurCorrecte("id_valeur");
        }
        
        /** Accesseur au nom de la valeur.
         * 
         * @return String le nom de la valeur.
         */
        public String getNom() {
                return (String) renvoyerValeurCorrecte("nom");
        }
        
        /** Accesseur à l'abréviation de la valeur.
         * 
         * @return String l'abréviation de la valeur.
         */
        public String getAbreviation() {
                return (String) renvoyerValeurCorrecte("abreviation");
        }
        
        /** Accesseur à la description de la valeur.
         * 
         * @return String la description de la valeur.
         */
        public String getDescription() {
                return (String) renvoyerValeurCorrecte("description");
        }
        
        
        /** Accesseur à l'identifiant parent de la valeur.
         * 
         * @return String l'identifiant de la valeur.
         */
        public String getParentId() {
                return (String) renvoyerValeurCorrecte("ce_parent");
        }

}