Subversion Repositories eFlore/Applications.coel

Rev

Rev 1480 | 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;
106 aurelien 2
 
1480 cyprien 3
import java.util.ArrayList;
1470 cyprien 4
import java.util.Iterator;
5
import java.util.Map;
6
import java.util.Set;
7
 
935 jpm 8
import org.tela_botanica.client.modeles.aDonnee;
1480 cyprien 9
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
935 jpm 10
import org.tela_botanica.client.modeles.structure.Structure;
1474 cyprien 11
import org.tela_botanica.client.util.Debug;
1369 cyprien 12
import org.tela_botanica.client.util.UtilString;
935 jpm 13
 
1470 cyprien 14
import com.extjs.gxt.ui.client.data.ModelData;
106 aurelien 15
import com.google.gwt.json.client.JSONObject;
16
 
17
public class Publication extends aDonnee {
18
 
748 jpm 19
	private static final long serialVersionUID = 4142843068041690126L;
20
 
1480 cyprien 21
	public static final String PREFIXE = "cpu";
22
	private boolean removePrefix = true;
799 jpm 23
	private Structure editeur = null;
1173 jpm 24
	public static String[] champsObligatoires = {"cpu_id_publication"};
1480 cyprien 25
	public ArrayList<String> cles = null;
230 aurelien 26
 
1480 cyprien 27
	public Publication() {
106 aurelien 28
	}
29
 
1480 cyprien 30
	public Publication(boolean removePrefix) {
31
		this.removePrefix = removePrefix;
32
		cles = new ArrayList<String>();
33
		cles.add("id_publication");
34
	}
35
 
741 aurelien 36
	public Publication(JSONObject publication) {
783 jpm 37
		initialiserModele(publication);
799 jpm 38
		editeur = new Structure(publication);
1480 cyprien 39
		cles = new ArrayList<String>();
40
		cles.add("id_publication");
106 aurelien 41
	}
42
 
1480 cyprien 43
	public Publication(ModelData model, boolean removePrefix)
44
	{
45
		this.removePrefix = removePrefix;
46
		cles = new ArrayList<String>();
47
		cles.add("id_publication");
48
 
1470 cyprien 49
		Map<String, Object> a = model.getProperties();
50
 
51
		Set<String> cles = a.keySet();
52
		Iterator<String> it = cles.iterator();
53
		while (it.hasNext()) {
54
			String cle = it.next();
55
			if (a.get(cle) != null) {
1480 cyprien 56
				String cleObjet = "";
57
				if (removePrefix) {
58
					cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
59
				}
60
				else {
61
					cleObjet=cle;
1487 cyprien 62
					String valeur = "";
63
					if (a.get(cle) instanceof Integer) valeur = String.valueOf(a.get(cle));
64
					else if (a.get(cle) instanceof String) valeur = (String)a.get(cle);
65
					traiterClesEtrangeres(cle, valeur);
1480 cyprien 66
				}
1470 cyprien 67
				this.set(cleObjet, a.get(cle));
68
			}
69
		}
70
	}
71
 
1480 cyprien 72
	// Action
73
	//--------
74
	// cette méthode sert dans le cas suivant : le contructeur reçoit un object ModelData
75
	// qui contient cpuap_id_publication mais pas cpu_id_publication ou id_publication. Sans
76
	// la méthode ci-dessous, on aurait des problèmes. Celle-ci affecte à id_publication la
77
	// valeur des clés étrangères rencontrées (cpuap_id_publication, cpuac_id_publication, etc.)
78
	private void traiterClesEtrangeres(String cle, String valeur) {
79
		// on recupere le nom de la clé de la propriété (sans son prefixe)
80
		String nomSansPrefixe = cle.replaceFirst("^[a-zA-Z]+_", "");
81
		// on regarde si cette clé est une clé primaire de la table Publication
82
		if (cles.contains(nomSansPrefixe)) {
83
			// si c'est le cas et que la valeur est non nulle
84
			if (valeur != null && !UtilString.isEmpty(valeur)) {
85
				// on affecte la valeur de la clés étrangère à la clé primaire
86
				if (removePrefix) this.set(nomSansPrefixe, valeur);
87
				else this.set(PREFIXE+"_"+nomSansPrefixe, valeur);
88
			}
89
		}
90
	}
91
 
748 jpm 92
	protected String getPrefixe() {
93
		return PREFIXE;
94
	}
783 jpm 95
 
1173 jpm 96
	protected String[] getChampsObligatoires()	{
97
		return champsObligatoires;
98
	}
99
 
799 jpm 100
	public void setStructureEditeur(Structure structure) {
101
		editeur = structure;
736 aurelien 102
	}
919 jpm 103
 
106 aurelien 104
	public String getId() {
1480 cyprien 105
		if (removePrefix) return renvoyerValeurCorrecte("id_publication");
106
		else return renvoyerValeurCorrecte(PREFIXE+"_id_publication");
106 aurelien 107
	}
783 jpm 108
	public void setId(String idPublication) {
1480 cyprien 109
		if (removePrefix) this.set("id_publication", idPublication);
110
		else this.set(PREFIXE+"_id_publication", idPublication);
783 jpm 111
	}
106 aurelien 112
 
783 jpm 113
	public String getIdProjet() {
1480 cyprien 114
		if (removePrefix) return renvoyerValeurCorrecte("ce_projet");
115
		else return renvoyerValeurCorrecte(PREFIXE+"_ce_projet");
106 aurelien 116
	}
783 jpm 117
	public void setIdProjet(String idProjet) {
1480 cyprien 118
		if (removePrefix) this.set("ce_projet", idProjet);
119
		else this.set(PREFIXE+"_ce_projet", idProjet);
783 jpm 120
	}
106 aurelien 121
 
122
	public String getNomComplet() {
1480 cyprien 123
		if (removePrefix) return renvoyerValeurCorrecte("fmt_nom_complet");
124
		else return renvoyerValeurCorrecte(PREFIXE+"_fmt_nom_complet");
106 aurelien 125
	}
783 jpm 126
	public void setNomComplet(String nomComplet) {
1480 cyprien 127
		if (removePrefix) this.set("fmt_nom_complet", nomComplet);
128
		else this.set(PREFIXE+"_fmt_nom_complet", nomComplet);
783 jpm 129
	}
106 aurelien 130
 
131
	public String getURI() {
1480 cyprien 132
		if (removePrefix) return renvoyerValeurCorrecte("uri");
133
		else return renvoyerValeurCorrecte(PREFIXE+"_uri");
106 aurelien 134
	}
783 jpm 135
	public void setUri(String uri) {
1480 cyprien 136
		if (removePrefix) this.set("uri", uri);
137
		else this.set(PREFIXE+"_uri", uri);
783 jpm 138
	}
106 aurelien 139
 
140
	public String getAuteur() {
1480 cyprien 141
		if (removePrefix) return renvoyerValeurCorrecte("fmt_auteur");
142
		else return renvoyerValeurCorrecte(PREFIXE+"_fmt_auteur");
106 aurelien 143
	}
783 jpm 144
	public void setAuteur(String auteurFormate) {
1480 cyprien 145
		if (removePrefix) this.set("fmt_auteur", auteurFormate);
146
		else this.set(PREFIXE+"_fmt_auteur", auteurFormate);
783 jpm 147
	}
106 aurelien 148
 
149
	public String getCollection() {
1480 cyprien 150
		if (removePrefix) return renvoyerValeurCorrecte("collection");
151
		else return renvoyerValeurCorrecte(PREFIXE+"_collection");
106 aurelien 152
	}
783 jpm 153
	public void setCollection(String collection) {
1480 cyprien 154
		if (removePrefix) this.set("collection", collection);
155
		else this.set(PREFIXE+"_collection", collection);
783 jpm 156
	}
106 aurelien 157
 
158
	public String getTitre() {
1480 cyprien 159
		if (removePrefix) return renvoyerValeurCorrecte("titre");
160
		else return renvoyerValeurCorrecte(PREFIXE+"_titre");
106 aurelien 161
	}
783 jpm 162
	public void setTitre(String titre) {
1480 cyprien 163
		if (removePrefix) this.set("titre", UtilString.ucFirst(titre));
164
		else this.set(PREFIXE+"_titre", UtilString.ucFirst(titre));
783 jpm 165
	}
106 aurelien 166
 
799 jpm 167
	public String getNomEditeur() {
168
		String editeurNom = getEditeur();
169
		if (editeurNom.matches("[0-9]+")) {
170
			editeurNom = editeur.getNom();
171
		}
172
		return editeurNom;
173
	}
106 aurelien 174
	public String getEditeur() {
1480 cyprien 175
		if (removePrefix) return getChaineDenormaliseUnique("ce_truk_editeur");
176
		else return getChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur");
106 aurelien 177
	}
783 jpm 178
	public void setEditeur(String editeur) {
1480 cyprien 179
		if (removePrefix) setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur);
180
		else setChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur", "AUTRE", editeur);
783 jpm 181
	}
106 aurelien 182
 
799 jpm 183
	public String getAnneeParution() {
1480 cyprien 184
		String date;
185
		if (removePrefix) date = renvoyerValeurCorrecte("date_parution");
186
		else date = renvoyerValeurCorrecte(PREFIXE+"_date_parution");
1474 cyprien 187
		if (date != null && !UtilString.isEmpty(date))
188
			return date.substring(0, 4);
189
		else
190
			return null;
799 jpm 191
	}
106 aurelien 192
	public String getDateParution() {
1480 cyprien 193
		if (removePrefix) return renvoyerValeurCorrecte("date_parution");
194
		else return renvoyerValeurCorrecte(PREFIXE+"_date_parution");
106 aurelien 195
	}
783 jpm 196
	public void setDateParution(String date) {
1480 cyprien 197
		if (removePrefix) this.set("date_parution", date);
198
		else this.set(PREFIXE+"_date_parution", date);
783 jpm 199
	}
106 aurelien 200
 
201
	public String getIndicationNvt() {
1480 cyprien 202
		if (removePrefix) return renvoyerValeurCorrecte("indication_nvt");
203
		else return renvoyerValeurCorrecte(PREFIXE+"_indication_nvt");
106 aurelien 204
	}
783 jpm 205
	public void setIndicationNvt(String nvt) {
1480 cyprien 206
		if (removePrefix) this.set("indication_nvt", nvt);
207
		else this.set(PREFIXE+"_indication_nvt", nvt);
783 jpm 208
	}
106 aurelien 209
 
210
	public String getFascicule() {
1480 cyprien 211
		if (removePrefix) return renvoyerValeurCorrecte("fascicule");
212
		else return renvoyerValeurCorrecte(PREFIXE+"_fascicule");
106 aurelien 213
	}
783 jpm 214
	public void setFascicule(String fascicule) {
1480 cyprien 215
		if (removePrefix) this.set("fascicule", fascicule);
216
		else this.set(PREFIXE+"_fascicule", fascicule);
783 jpm 217
	}
106 aurelien 218
 
219
	public String getPages() {
1480 cyprien 220
		if (removePrefix) return renvoyerValeurCorrecte("truk_pages");
221
		else return renvoyerValeurCorrecte(PREFIXE+"_truk_pages");
106 aurelien 222
	}
783 jpm 223
	public void setPages(String pages) {
1480 cyprien 224
		if (removePrefix) this.set("truk_pages", pages);
225
		else this.set(PREFIXE+"_truk_pages", pages);
783 jpm 226
	}
230 aurelien 227
 
106 aurelien 228
}