Subversion Repositories eFlore/Applications.coel

Rev

Rev 736 | Blame | 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 com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.user.client.Window;

public class Publication extends aDonnee {

        /**
         * Préfixe à retirer pour construire les noms des clés
         * et à rajouter lors de la transformation en requête
         */
        private static String prefixe = "cpu_";
        
        /**
         * Constructeur vide
         * 
         */
        public Publication() {
                
        }
        
        /**
         * Constructeur avec un objet JSON
         * 
         * @param image
         */
        public Publication(JSONObject publication) {
                // l'objet JSON est une table de hachage
                Set<String> im = publication.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 (publication.get(cle).isString() != null) {
                                String valeur = publication.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 Publication(String nom_complet, String uri, String auteur, String idAuteur, String collection, String titre, String editeur,
                        String dateParution, String indicationNvt, String fascicule, String pages) {
                this.set("fmt_nom_complet", nom_complet);
                this.set("ce_projet", "");
                this.set("uri", uri);
                this.set("fmt_auteur", auteur);
                this.set("collection", collection);
                this.set("titre", titre);
                this.set("ce_truk_editeur", editeur);
                this.set("date_parution", dateParution);
                this.set("indication_nvt", indicationNvt);
                this.set("fascicule", fascicule);
                this.set("truk_pages", pages);
                this.set("ce_meta", "");
                this.set("id_auteur", idAuteur);
        }
        
        public Publication(String idPublication,String idProjet, String nom_complet, String uri, String auteur, String idAuteur, String collection, String titre, String editeur,
                        String dateParution, String indicationNvt, String fascicule, String pages) {
                this.set("id_publication", idPublication);
                this.set("ce_projet", idProjet);
                this.set("fmt_nom_complet", nom_complet);
                this.set("uri", uri);
                this.set("fmt_auteur", auteur);
                this.set("collection", collection);
                this.set("titre", titre);
                this.set("ce_truk_editeur", editeur);
                this.set("date_parution", dateParution);
                this.set("indication_nvt", indicationNvt);
                this.set("fascicule", fascicule);
                this.set("truk_pages", pages);
                this.set("ce_meta", "");
                this.set("id_auteur", idAuteur);
        }
        
        public String getNomEditeur() {
                return (String) renvoyerValeurCorrecte("cs_nom");
        }

        public String getId() {
                return (String) renvoyerValeurCorrecte("id_publication");
        }
        
        public String getProjet() {
                return (String) renvoyerValeurCorrecte("ce_projet");
        }
        
        public String getNomComplet() {
                return (String) renvoyerValeurCorrecte("fmt_nom_complet");
        }
        
        public String getURI() {
                return (String) renvoyerValeurCorrecte("uri");
        }

        public String getAuteur() {
                return (String) renvoyerValeurCorrecte("fmt_auteur");
        }

        public String getCollection() {
                return (String) renvoyerValeurCorrecte("collection");
        }
        
        public String getTitre() {
                return (String) renvoyerValeurCorrecte("titre");
        }

        public String getEditeur() {
                return (String) renvoyerValeurCorrecte("ce_truk_editeur");
        }

        public String getDateParution() {
                return (String) renvoyerValeurCorrecte("date_parution");
        }

        public String getIndicationNvt() {
                return (String) renvoyerValeurCorrecte("indication_nvt");
        }
        
        public String getFascicule() {
                return (String) renvoyerValeurCorrecte("fascicule");
        }
        
        public String getPages() {
                return (String) renvoyerValeurCorrecte("truk_pages");
        }
        
        public String getMeta() {
                return (String) renvoyerValeurCorrecte("ce_meta");
        }
        
        public String getIdAuteur() {
                return (String) renvoyerValeurCorrecte("cpuap_id_personne");
        }
        
        public String toReqString() {
                String reqString = "" ;
                
                Map<String,Object> clesValeurs = getProperties() ;
                for(Iterator<String> it = clesValeurs.keySet().iterator(); it.hasNext();) {
                        String cle = it.next();
                        if(cle.equals("id_auteur")) {
                                reqString += "&"+"cpuap_id_personne="+URL.encode((String)clesValeurs.get(cle));
                        } else  {
                                reqString += "&"+prefixe+cle+"="+URL.encode((String)renvoyerValeurCorrecte(cle));
                        }
                }
                GWT.log(reqString, null);
                return reqString;
        }
}