Rev 1369 | Rev 1426 | 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.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 static String[] champsObligatoires = {"cpuap_id_personne", "cpuap_id_publication", "cpuap_id_role"};
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;
}
protected String[] getChampsObligatoires() {
return champsObligatoires;
}
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);
}
}