Subversion Repositories eFlore/Applications.coel

Rev

Rev 1383 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
935 jpm 1
package org.tela_botanica.client.modeles.publication;
741 aurelien 2
 
3
import java.util.Iterator;
1426 cyprien 4
import java.util.Map;
741 aurelien 5
import java.util.Set;
6
 
935 jpm 7
import org.tela_botanica.client.modeles.aDonnee;
8
import org.tela_botanica.client.modeles.personne.Personne;
1426 cyprien 9
import org.tela_botanica.client.util.Debug;
935 jpm 10
 
741 aurelien 11
import com.google.gwt.json.client.JSONObject;
12
 
13
public class PublicationAPersonne extends aDonnee {
14
 
15
	private static final long serialVersionUID = 7769105365939978129L;
748 jpm 16
 
751 jpm 17
	public static final String PREFIXE = "cpuap";
18
	public static final String ROLE_AUTEUR = "2360";
992 gduche 19
	//FIXME: insérer en base de données une valeur cohérente pour l'identifiant ci-dessous
20
	public static final String ROLE_SUJET = "30762";
21
 
775 jpm 22
	private Personne personneLiee = null;
992 gduche 23
	private Publication publicationLiee = null;
1173 jpm 24
	public static String[] champsObligatoires = {"cpuap_id_personne", "cpuap_id_publication", "cpuap_id_role"};
775 jpm 25
 
992 gduche 26
	public PublicationAPersonne() {
27
		new PublicationAPersonne(new JSONObject());
28
	}
901 jpm 29
 
741 aurelien 30
	public PublicationAPersonne(JSONObject pubAPersListe) {
1426 cyprien 31
		Personne personne = new Personne(pubAPersListe);
32
		setPersonne(personne);
992 gduche 33
		publicationLiee = new Publication(pubAPersListe);
775 jpm 34
 
741 aurelien 35
		// l'objet JSON est une table de hachage
36
		Set<String> im = pubAPersListe.keySet();
37
 
38
		// Parcourt pour chaque clé
39
		for (Iterator<String> it = im.iterator(); it.hasNext();) {
40
			// Si elle est associée à une valeur, nous l'ajoutons
41
			String cle = it.next();
42
			// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
748 jpm 43
			String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
44
			// Valeur vide par défaut
45
			String valeur = "";
741 aurelien 46
			if (pubAPersListe.get(cle).isString() != null) {
748 jpm 47
				valeur = pubAPersListe.get(cle).isString().stringValue();
48
				this.set(cleObjet, valeur);
741 aurelien 49
			} else {
748 jpm 50
				this.set(cleObjet, valeur);
741 aurelien 51
			}
52
		}
992 gduche 53
 
54
		initialiserChampsPourGrille();
741 aurelien 55
	}
56
 
992 gduche 57
 
58
	private void initialiserChampsPourGrille() {
59
		set("fmt_auteur", publicationLiee.getAuteur());
60
		set("titre", publicationLiee.getTitre());
61
		set("collection", publicationLiee.getCollection());
62
		set("_editeur_", "");
63
		set("_annee_", "");
64
		set("indication_nvt", publicationLiee.getIndicationNvt());
65
		set("fascicule", publicationLiee.getFascicule());
66
		set("truk_pages", publicationLiee.getPages());
67
		set("_etat_", "");
1014 gduche 68
		set("_role_", this.get("id_role"));
992 gduche 69
	}
70
 
71
 
748 jpm 72
	@Override
73
	protected String getPrefixe() {
74
		return PREFIXE;
75
	}
76
 
1173 jpm 77
	protected String[] getChampsObligatoires()	{
78
		return champsObligatoires;
79
	}
80
 
775 jpm 81
	public Personne getPersonne() {
82
		return personneLiee;
748 jpm 83
	}
775 jpm 84
	public void setPersonne(Personne personne) {
85
		personneLiee = personne;
901 jpm 86
		if (personne != null) {
87
			setIdPersonne(personne.getId());
88
		}
1426 cyprien 89
 
90
		Map<String, Object> a = personne.getProperties();
91
 
92
		Set<String> cles = a.keySet();
93
		Iterator<String> it = cles.iterator();
94
		while (it.hasNext()) {
95
			String cle = it.next();
96
			if (a.get(cle) != null) {
97
				String cleObjet = cle.replaceFirst("^"+Personne.PREFIXE+"_", "");
98
				this.set(cleObjet, a.get(cle));
99
			}
100
		}
741 aurelien 101
	}
102
 
901 jpm 103
	// ID
104
	public String getId() {
105
		String idPublication = getIdPublication();
106
		String idPersonne = getIdPersonne();
107
		String idRole = getIdRole();
108
		if (idPublication.equals("") && idPersonne.equals("") && idRole.equals("")) {
109
			return null;
110
		} else {
111
			return (idPublication+"-"+idPersonne+"-"+idRole);
112
		}
113
	}
114
 
115
	// ID PUBLICATION
116
	public String getIdPublication() {
117
		return renvoyerValeurCorrecte("id_publication");
118
	}
119
	public void setIdPublication(String id) {
120
		set("id_publication", id);
121
	}
122
 
992 gduche 123
	// PUBLICATION LIEE
124
	public Publication getPublicationLiee()	{
125
		return this.publicationLiee;
126
	}
127
 
128
	// LIER PUBLICATION
129
	public void setPublicationLiee(Publication publication)	{
130
		this.publicationLiee = publication;
131
		initialiserChampsPourGrille();
132
	}
133
 
1004 gduche 134
	// ROLE
135
	public String getRole() {
136
		String role = this.get("_role_");
137
		if (role != null)	{
138
			return role;
139
		} else 	{
140
			return "";
141
		}
142
	}
143
 
901 jpm 144
	// ID PERSONNE
145
	public String getIdPersonne() {
146
		return renvoyerValeurCorrecte("id_personne");
147
	}
148
	public void setIdPersonne(String id) {
149
		set("id_personne", id);
150
	}
151
 
152
	// ID RôLE
153
	public String getIdRole() {
154
		return renvoyerValeurCorrecte("id_role");
155
	}
156
	public void setIdRole(String id) {
157
		set("id_role", id);
158
	}
159
 
160
	// TYPE
161
	public String getType() {
162
		return renvoyerValeurCorrecte("ce_truk_type");
163
	}
164
	public void setType(String type) {
165
		set("ce_truk_type", type);
166
	}
167
	public void setFonction(String type, String valeur) {
168
		setChaineDenormaliseUnique("ce_truk_type", type, valeur);
169
	}
1426 cyprien 170
 
171
	// ORDRE DES AUTEURS
172
	public String getOrdreAuteurs() {
173
		return renvoyerValeurCorrecte("ordre");
174
	}
175
	public void setOrdreAuteurs(String ordre) {
176
		if (ordre.matches("[0-9]+")) {
177
			this.set("ordre", ordre);
178
		}
179
	}
775 jpm 180
}