New file |
0,0 → 1,150 |
package org.tela_botanica.client.modeles.publication; |
|
import java.util.Iterator; |
import java.util.Set; |
|
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
|
import com.google.gwt.json.client.JSONObject; |
|
public class PublicationAPersonne extends aDonnee { |
|
private static final long serialVersionUID = 7769105365939978129L; |
|
public static final String PREFIXE = "cpuap"; |
public static final String ROLE_AUTEUR = "2360"; |
//FIXME: insérer en base de données une valeur cohérente pour l'identifiant ci-dessous |
public static final String ROLE_SUJET = "30762"; |
|
private Personne personneLiee = null; |
private Publication publicationLiee = null; |
|
public PublicationAPersonne() { |
new PublicationAPersonne(new JSONObject()); |
} |
|
public PublicationAPersonne(JSONObject pubAPersListe) { |
personneLiee = new Personne(pubAPersListe); |
publicationLiee = new Publication(pubAPersListe); |
|
// l'objet JSON est une table de hachage |
Set<String> im = pubAPersListe.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+"_", ""); |
// Valeur vide par défaut |
String valeur = ""; |
if (pubAPersListe.get(cle).isString() != null) { |
valeur = pubAPersListe.get(cle).isString().stringValue(); |
this.set(cleObjet, valeur); |
} else { |
this.set(cleObjet, valeur); |
} |
} |
|
initialiserChampsPourGrille(); |
} |
|
|
private void initialiserChampsPourGrille() { |
set("fmt_auteur", publicationLiee.getAuteur()); |
set("titre", publicationLiee.getTitre()); |
set("collection", publicationLiee.getCollection()); |
set("_editeur_", ""); |
set("_annee_", ""); |
set("indication_nvt", publicationLiee.getIndicationNvt()); |
set("fascicule", publicationLiee.getFascicule()); |
set("truk_pages", publicationLiee.getPages()); |
set("_etat_", ""); |
set("_role_", this.get("id_role")); |
} |
|
|
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
|
public Personne getPersonne() { |
return personneLiee; |
} |
public void setPersonne(Personne personne) { |
personneLiee = personne; |
if (personne != null) { |
setIdPersonne(personne.getId()); |
} |
} |
|
// ID |
public String getId() { |
String idPublication = getIdPublication(); |
String idPersonne = getIdPersonne(); |
String idRole = getIdRole(); |
if (idPublication.equals("") && idPersonne.equals("") && idRole.equals("")) { |
return null; |
} else { |
return (idPublication+"-"+idPersonne+"-"+idRole); |
} |
} |
|
// ID PUBLICATION |
public String getIdPublication() { |
return renvoyerValeurCorrecte("id_publication"); |
} |
public void setIdPublication(String id) { |
set("id_publication", id); |
} |
|
// PUBLICATION LIEE |
public Publication getPublicationLiee() { |
return this.publicationLiee; |
} |
|
// LIER PUBLICATION |
public void setPublicationLiee(Publication publication) { |
this.publicationLiee = publication; |
initialiserChampsPourGrille(); |
} |
|
// ROLE |
public String getRole() { |
String role = this.get("_role_"); |
if (role != null) { |
return role; |
} else { |
return ""; |
} |
} |
|
// ID PERSONNE |
public String getIdPersonne() { |
return renvoyerValeurCorrecte("id_personne"); |
} |
public void setIdPersonne(String id) { |
set("id_personne", id); |
} |
|
// ID RôLE |
public String getIdRole() { |
return renvoyerValeurCorrecte("id_role"); |
} |
public void setIdRole(String id) { |
set("id_role", id); |
} |
|
// TYPE |
public String getType() { |
return renvoyerValeurCorrecte("ce_truk_type"); |
} |
public void setType(String type) { |
set("ce_truk_type", type); |
} |
public void setFonction(String type, String valeur) { |
setChaineDenormaliseUnique("ce_truk_type", type, valeur); |
} |
} |