Rev 1516 | 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.structure.Structure;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";public static String[] champsObligatoires = {"cpu_id_publication"};private Structure editeur = null;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(getPrefixe()+"_"+nomSansPrefixe, valeur);}}}}protected String getPrefixe() {return PREFIXE;}protected String[] getChampsObligatoires() {return champsObligatoires;}public void setStructureEditeur(Structure structure) {editeur = structure;}public String getId() {return renvoyerValeurCorrecte("id_publication");}public void setId(String idPublication) {setValeurCorrecte("id_publication", idPublication);}public String getIdProjet() {return renvoyerValeurCorrecte("ce_projet");}public void setIdProjet(String idProjet) {setValeurCorrecte("ce_projet", idProjet);}public String getNomComplet() {return renvoyerValeurCorrecte("fmt_nom_complet");}public void setNomComplet(String nomComplet) {setValeurCorrecte("fmt_nom_complet", nomComplet);}public String getURI() {return renvoyerValeurCorrecte("uri");}public void setUri(String uri) {setValeurCorrecte("uri", uri);}public String getAuteur() {return renvoyerValeurCorrecte("fmt_auteur");}public void setAuteur(String auteurFormate) {setValeurCorrecte("fmt_auteur", auteurFormate);}public String getCollection() {return renvoyerValeurCorrecte("collection");}public void setCollection(String collection) {setValeurCorrecte("collection", collection);}public String getTitre() {return renvoyerValeurCorrecte("titre");}public void setTitre(String titre) {setValeurCorrecte("titre", UtilString.ucFirst(titre));}public String getNomEditeur() {String editeurNom = getEditeur();if (editeurNom.matches("[0-9]+")) {editeurNom = editeur.getNom();}return editeurNom;}public String getEditeur() {return getChaineDenormaliseUnique("ce_truk_editeur");}public void setEditeur(String editeur) {setChaineDenormaliseUnique("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() {return renvoyerValeurCorrecte("date_parution");}public void setDateParution(String date) {setValeurCorrecte("date_parution", date);}public String getIndicationNvt() {return renvoyerValeurCorrecte("indication_nvt");}public void setIndicationNvt(String nvt) {setValeurCorrecte("indication_nvt", nvt);}public String getFascicule() {return renvoyerValeurCorrecte("fascicule");}public void setFascicule(String fascicule) {setValeurCorrecte("fascicule", fascicule);}public String getPages() {return renvoyerValeurCorrecte("truk_pages");}public void setPages(String pages) {setValeurCorrecte("truk_pages", pages);}}