Rev 1513 | Rev 1568 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles.publication;import java.util.ArrayList;import java.util.Iterator;import java.util.Map;import java.util.Set;import org.tela_botanica.client.modeles.aDonnee;import org.tela_botanica.client.modeles.collection.CollectionAPublication;import org.tela_botanica.client.modeles.structure.Structure;import org.tela_botanica.client.util.Debug;import org.tela_botanica.client.util.UtilString;import com.extjs.gxt.ui.client.data.ModelData;import com.google.gwt.json.client.JSONObject;public class Publication extends aDonnee {private static final long serialVersionUID = 4142843068041690126L;public static final String PREFIXE = "cpu";private boolean removePrefix = true;private Structure editeur = null;public static String[] champsObligatoires = {"cpu_id_publication"};public ArrayList<String> cles = null;public Publication() {}public Publication(boolean removePrefix) {this.removePrefix = removePrefix;cles = new ArrayList<String>();cles.add("id_publication");}public Publication(JSONObject publication) {initialiserModele(publication);editeur = new Structure(publication);cles = new ArrayList<String>();cles.add("id_publication");}public Publication(ModelData model, boolean removePrefix){this.removePrefix = removePrefix;cles = new ArrayList<String>();cles.add("id_publication");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 = "";if (removePrefix) {cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");}else {cleObjet=cle;String valeur = "";if (a.get(cle) instanceof Integer) valeur = String.valueOf(a.get(cle));else if (a.get(cle) instanceof String) valeur = (String)a.get(cle);traiterClesEtrangeres(cle, valeur);}this.set(cleObjet, a.get(cle));}}}// Action//--------// cette méthode sert dans le cas suivant : le contructeur reçoit un object ModelData// qui contient cpuap_id_publication mais pas cpu_id_publication ou id_publication. Sans// la méthode ci-dessous, on aurait des problèmes. Celle-ci affecte à id_publication la// valeur des clés étrangères rencontrées (cpuap_id_publication, cpuac_id_publication, etc.)private void traiterClesEtrangeres(String cle, String valeur) {// on recupere le nom de la clé de la propriété (sans son prefixe)String nomSansPrefixe = cle.replaceFirst("^[a-zA-Z]+_", "");// on regarde si cette clé est une clé primaire de la table Publicationif (cles.contains(nomSansPrefixe)) {// si c'est le cas et que la valeur est non nulleif (valeur != null && !UtilString.isEmpty(valeur)) {// on affecte la valeur de la clés étrangère à la clé primaireif (removePrefix) this.set(nomSansPrefixe, valeur);else this.set(PREFIXE+"_"+nomSansPrefixe, valeur);}}}protected String getPrefixe() {return PREFIXE;}protected String[] getChampsObligatoires() {return champsObligatoires;}public void setStructureEditeur(Structure structure) {editeur = structure;}public String getId() {if (removePrefix) return renvoyerValeurCorrecte("id_publication");else return renvoyerValeurCorrecte(PREFIXE+"_id_publication");}public void setId(String idPublication) {if (removePrefix) this.set("id_publication", idPublication);else this.set(PREFIXE+"_id_publication", idPublication);}public String getIdProjet() {if (removePrefix) return renvoyerValeurCorrecte("ce_projet");else return renvoyerValeurCorrecte(PREFIXE+"_ce_projet");}public void setIdProjet(String idProjet) {if (removePrefix) this.set("ce_projet", idProjet);else this.set(PREFIXE+"_ce_projet", idProjet);}public String getNomComplet() {if (removePrefix) return renvoyerValeurCorrecte("fmt_nom_complet");else return renvoyerValeurCorrecte(PREFIXE+"_fmt_nom_complet");}public void setNomComplet(String nomComplet) {if (removePrefix) this.set("fmt_nom_complet", nomComplet);else this.set(PREFIXE+"_fmt_nom_complet", nomComplet);}public String getURI() {if (removePrefix) return renvoyerValeurCorrecte("uri");else return renvoyerValeurCorrecte(PREFIXE+"_uri");}public void setUri(String uri) {if (removePrefix) this.set("uri", uri);else this.set(PREFIXE+"_uri", uri);}public String getAuteur() {if (removePrefix) return renvoyerValeurCorrecte("fmt_auteur");else return renvoyerValeurCorrecte(PREFIXE+"_fmt_auteur");}public void setAuteur(String auteurFormate) {if (removePrefix) this.set("fmt_auteur", auteurFormate);else this.set(PREFIXE+"_fmt_auteur", auteurFormate);}public String getCollection() {if (removePrefix) return renvoyerValeurCorrecte("collection");else return renvoyerValeurCorrecte(PREFIXE+"_collection");}public void setCollection(String collection) {if (removePrefix) this.set("collection", collection);else this.set(PREFIXE+"_collection", collection);}public String getTitre() {if (removePrefix) return renvoyerValeurCorrecte("titre");else return renvoyerValeurCorrecte(PREFIXE+"_titre");}public void setTitre(String titre) {if (removePrefix) this.set("titre", UtilString.ucFirst(titre));else this.set(PREFIXE+"_titre", UtilString.ucFirst(titre));}public String getNomEditeur() {String editeurNom = getEditeur();if (editeurNom.matches("[0-9]+")) {editeurNom = editeur.getNom();}return editeurNom;}public String getEditeur() {if (removePrefix) return getChaineDenormaliseUnique("ce_truk_editeur");else return getChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur");}public void setEditeur(String editeur) {if (removePrefix) setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur);else setChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur", "AUTRE", editeur);}public String getAnneeParution() {String annee = "";String dateParution = this.getDateParution();if (dateParution.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {// AAAA-MM-JJannee = dateParution.split("-")[0];} else if (dateParution.matches("^[0-2][0-9]{3}-[0-2][0-9]{3}$")) {// AAAA-AAAAannee = dateParution;} else if (dateParution.matches("^[0-2][0-9]{3}$")) {// AAAAannee = dateParution;} else {annee = "";}return annee;}public void setAnneeParution(String annee) {if (annee.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) {// AAAA-MM-JJthis.setDateParution(annee);} else if (annee.matches("^[0-2][0-9]{3}-[0-2][0-9]{3}$")) {// AAAA-AAAAthis.setDateParution(annee);} else if (annee.matches("^[0-2][0-9]{3}$")) {// AAAAthis.setDateParution(annee);} else {this.setDateParution("");}}public static boolean etreAnneeParutionValide(String annee) {boolean valide = false;if (annee.matches("^[0-2][0-9]{3}$")) {// AAAAvalide = true;} else if (annee.matches("^[0-2][0-9]{3}-[0-2][0-9]{3}$")) {// AAAA-AAAAvalide = true;}return valide;}public String getDateParution() {if (removePrefix) return renvoyerValeurCorrecte("date_parution");else return renvoyerValeurCorrecte(PREFIXE+"_date_parution");}public void setDateParution(String date) {if (removePrefix) this.set("date_parution", date);else this.set(PREFIXE+"_date_parution", date);}public String getIndicationNvt() {if (removePrefix) return renvoyerValeurCorrecte("indication_nvt");else return renvoyerValeurCorrecte(PREFIXE+"_indication_nvt");}public void setIndicationNvt(String nvt) {if (removePrefix) this.set("indication_nvt", nvt);else this.set(PREFIXE+"_indication_nvt", nvt);}public String getFascicule() {if (removePrefix) return renvoyerValeurCorrecte("fascicule");else return renvoyerValeurCorrecte(PREFIXE+"_fascicule");}public void setFascicule(String fascicule) {if (removePrefix) this.set("fascicule", fascicule);else this.set(PREFIXE+"_fascicule", fascicule);}public String getPages() {if (removePrefix) return renvoyerValeurCorrecte("truk_pages");else return renvoyerValeurCorrecte(PREFIXE+"_truk_pages");}public void setPages(String pages) {if (removePrefix) this.set("truk_pages", pages);else this.set(PREFIXE+"_truk_pages", pages);}}