1,10 → 1,12 |
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; |
16,20 → 18,34 |
|
private static final long serialVersionUID = 4142843068041690126L; |
|
private static final String PREFIXE = "cpu"; |
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() { |
} |
|
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) |
{ |
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(); |
37,13 → 53,39 |
while (it.hasNext()) { |
String cle = it.next(); |
if (a.get(cle) != null) { |
String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", ""); |
String cleObjet = ""; |
if (removePrefix) { |
cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", ""); |
} |
else { |
cleObjet=cle; |
traiterClesEtrangeres(cle, (String)a.get(cle)); |
} |
this.set(cleObjet, a.get(cle)); |
} |
} |
} |
|
@Override |
// 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; |
} |
57,52 → 99,66 |
} |
|
public String getId() { |
return renvoyerValeurCorrecte("id_publication"); |
if (removePrefix) return renvoyerValeurCorrecte("id_publication"); |
else return renvoyerValeurCorrecte(PREFIXE+"_id_publication"); |
} |
public void setId(String idPublication) { |
this.set("id_publication", idPublication); |
if (removePrefix) this.set("id_publication", idPublication); |
else this.set(PREFIXE+"_id_publication", idPublication); |
} |
|
public String getIdProjet() { |
return renvoyerValeurCorrecte("ce_projet"); |
if (removePrefix) return renvoyerValeurCorrecte("ce_projet"); |
else return renvoyerValeurCorrecte(PREFIXE+"_ce_projet"); |
} |
public void setIdProjet(String idProjet) { |
this.set("ce_projet", idProjet); |
if (removePrefix) this.set("ce_projet", idProjet); |
else this.set(PREFIXE+"_ce_projet", idProjet); |
} |
|
public String getNomComplet() { |
return renvoyerValeurCorrecte("fmt_nom_complet"); |
if (removePrefix) return renvoyerValeurCorrecte("fmt_nom_complet"); |
else return renvoyerValeurCorrecte(PREFIXE+"_fmt_nom_complet"); |
} |
public void setNomComplet(String nomComplet) { |
this.set("fmt_nom_complet", nomComplet); |
if (removePrefix) this.set("fmt_nom_complet", nomComplet); |
else this.set(PREFIXE+"_fmt_nom_complet", nomComplet); |
} |
|
public String getURI() { |
return renvoyerValeurCorrecte("uri"); |
if (removePrefix) return renvoyerValeurCorrecte("uri"); |
else return renvoyerValeurCorrecte(PREFIXE+"_uri"); |
} |
public void setUri(String uri) { |
this.set("uri", uri); |
if (removePrefix) this.set("uri", uri); |
else this.set(PREFIXE+"_uri", uri); |
} |
|
public String getAuteur() { |
return renvoyerValeurCorrecte("fmt_auteur"); |
if (removePrefix) return renvoyerValeurCorrecte("fmt_auteur"); |
else return renvoyerValeurCorrecte(PREFIXE+"_fmt_auteur"); |
} |
public void setAuteur(String auteurFormate) { |
this.set("fmt_auteur", auteurFormate); |
if (removePrefix) this.set("fmt_auteur", auteurFormate); |
else this.set(PREFIXE+"_fmt_auteur", auteurFormate); |
} |
|
public String getCollection() { |
return renvoyerValeurCorrecte("collection"); |
if (removePrefix) return renvoyerValeurCorrecte("collection"); |
else return renvoyerValeurCorrecte(PREFIXE+"_collection"); |
} |
public void setCollection(String collection) { |
this.set("collection", collection); |
if (removePrefix) this.set("collection", collection); |
else this.set(PREFIXE+"_collection", collection); |
} |
|
public String getTitre() { |
return renvoyerValeurCorrecte("titre"); |
if (removePrefix) return renvoyerValeurCorrecte("titre"); |
else return renvoyerValeurCorrecte(PREFIXE+"_titre"); |
} |
public void setTitre(String titre) { |
this.set("titre", UtilString.ucFirst(titre)); |
if (removePrefix) this.set("titre", UtilString.ucFirst(titre)); |
else this.set(PREFIXE+"_titre", UtilString.ucFirst(titre)); |
} |
|
public String getNomEditeur() { |
113,14 → 169,18 |
return editeurNom; |
} |
public String getEditeur() { |
return getChaineDenormaliseUnique("ce_truk_editeur"); |
if (removePrefix) return getChaineDenormaliseUnique("ce_truk_editeur"); |
else return getChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur"); |
} |
public void setEditeur(String editeur) { |
setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur); |
if (removePrefix) setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur); |
else setChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur", "AUTRE", editeur); |
} |
|
public String getAnneeParution() { |
String date = renvoyerValeurCorrecte("date_parution"); |
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 |
127,31 → 187,39 |
return null; |
} |
public String getDateParution() { |
return renvoyerValeurCorrecte("date_parution"); |
if (removePrefix) return renvoyerValeurCorrecte("date_parution"); |
else return renvoyerValeurCorrecte(PREFIXE+"_date_parution"); |
} |
public void setDateParution(String date) { |
this.set("date_parution", date); |
if (removePrefix) this.set("date_parution", date); |
else this.set(PREFIXE+"_date_parution", date); |
} |
|
public String getIndicationNvt() { |
return renvoyerValeurCorrecte("indication_nvt"); |
if (removePrefix) return renvoyerValeurCorrecte("indication_nvt"); |
else return renvoyerValeurCorrecte(PREFIXE+"_indication_nvt"); |
} |
public void setIndicationNvt(String nvt) { |
this.set("indication_nvt", nvt); |
if (removePrefix) this.set("indication_nvt", nvt); |
else this.set(PREFIXE+"_indication_nvt", nvt); |
} |
|
public String getFascicule() { |
return renvoyerValeurCorrecte("fascicule"); |
if (removePrefix) return renvoyerValeurCorrecte("fascicule"); |
else return renvoyerValeurCorrecte(PREFIXE+"_fascicule"); |
} |
public void setFascicule(String fascicule) { |
this.set("fascicule", fascicule); |
if (removePrefix) this.set("fascicule", fascicule); |
else this.set(PREFIXE+"_fascicule", fascicule); |
} |
|
public String getPages() { |
return renvoyerValeurCorrecte("truk_pages"); |
if (removePrefix) return renvoyerValeurCorrecte("truk_pages"); |
else return renvoyerValeurCorrecte(PREFIXE+"_truk_pages"); |
} |
public void setPages(String pages) { |
this.set("truk_pages", pages); |
if (removePrefix) this.set("truk_pages", pages); |
else this.set(PREFIXE+"_truk_pages", pages); |
} |
|
} |