Rev 1474 | 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;
traiterClesEtrangeres(cle, (String)a.get(cle));
}
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 Publication
if (cles.contains(nomSansPrefixe)) {
// si c'est le cas et que la valeur est non nulle
if (valeur != null && !UtilString.isEmpty(valeur)) {
// on affecte la valeur de la clés étrangère à la clé primaire
if (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 date;
if (removePrefix) date = renvoyerValeurCorrecte("date_parution");
else date = renvoyerValeurCorrecte(PREFIXE+"_date_parution");
if (date != null && !UtilString.isEmpty(date))
return date.substring(0, 4);
else
return null;
}
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);
}
}