Subversion Repositories eFlore/Applications.coel

Rev

Rev 1474 | 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;
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;
62
					traiterClesEtrangeres(cle, (String)a.get(cle));
63
				}
1470 cyprien 64
				this.set(cleObjet, a.get(cle));
65
			}
66
		}
67
	}
68
 
1480 cyprien 69
	// Action
70
	//--------
71
	// cette méthode sert dans le cas suivant : le contructeur reçoit un object ModelData
72
	// qui contient cpuap_id_publication mais pas cpu_id_publication ou id_publication. Sans
73
	// la méthode ci-dessous, on aurait des problèmes. Celle-ci affecte à id_publication la
74
	// valeur des clés étrangères rencontrées (cpuap_id_publication, cpuac_id_publication, etc.)
75
	private void traiterClesEtrangeres(String cle, String valeur) {
76
		// on recupere le nom de la clé de la propriété (sans son prefixe)
77
		String nomSansPrefixe = cle.replaceFirst("^[a-zA-Z]+_", "");
78
		// on regarde si cette clé est une clé primaire de la table Publication
79
		if (cles.contains(nomSansPrefixe)) {
80
			// si c'est le cas et que la valeur est non nulle
81
			if (valeur != null && !UtilString.isEmpty(valeur)) {
82
				// on affecte la valeur de la clés étrangère à la clé primaire
83
				if (removePrefix) this.set(nomSansPrefixe, valeur);
84
				else this.set(PREFIXE+"_"+nomSansPrefixe, valeur);
85
			}
86
		}
87
	}
88
 
748 jpm 89
	protected String getPrefixe() {
90
		return PREFIXE;
91
	}
783 jpm 92
 
1173 jpm 93
	protected String[] getChampsObligatoires()	{
94
		return champsObligatoires;
95
	}
96
 
799 jpm 97
	public void setStructureEditeur(Structure structure) {
98
		editeur = structure;
736 aurelien 99
	}
919 jpm 100
 
106 aurelien 101
	public String getId() {
1480 cyprien 102
		if (removePrefix) return renvoyerValeurCorrecte("id_publication");
103
		else return renvoyerValeurCorrecte(PREFIXE+"_id_publication");
106 aurelien 104
	}
783 jpm 105
	public void setId(String idPublication) {
1480 cyprien 106
		if (removePrefix) this.set("id_publication", idPublication);
107
		else this.set(PREFIXE+"_id_publication", idPublication);
783 jpm 108
	}
106 aurelien 109
 
783 jpm 110
	public String getIdProjet() {
1480 cyprien 111
		if (removePrefix) return renvoyerValeurCorrecte("ce_projet");
112
		else return renvoyerValeurCorrecte(PREFIXE+"_ce_projet");
106 aurelien 113
	}
783 jpm 114
	public void setIdProjet(String idProjet) {
1480 cyprien 115
		if (removePrefix) this.set("ce_projet", idProjet);
116
		else this.set(PREFIXE+"_ce_projet", idProjet);
783 jpm 117
	}
106 aurelien 118
 
119
	public String getNomComplet() {
1480 cyprien 120
		if (removePrefix) return renvoyerValeurCorrecte("fmt_nom_complet");
121
		else return renvoyerValeurCorrecte(PREFIXE+"_fmt_nom_complet");
106 aurelien 122
	}
783 jpm 123
	public void setNomComplet(String nomComplet) {
1480 cyprien 124
		if (removePrefix) this.set("fmt_nom_complet", nomComplet);
125
		else this.set(PREFIXE+"_fmt_nom_complet", nomComplet);
783 jpm 126
	}
106 aurelien 127
 
128
	public String getURI() {
1480 cyprien 129
		if (removePrefix) return renvoyerValeurCorrecte("uri");
130
		else return renvoyerValeurCorrecte(PREFIXE+"_uri");
106 aurelien 131
	}
783 jpm 132
	public void setUri(String uri) {
1480 cyprien 133
		if (removePrefix) this.set("uri", uri);
134
		else this.set(PREFIXE+"_uri", uri);
783 jpm 135
	}
106 aurelien 136
 
137
	public String getAuteur() {
1480 cyprien 138
		if (removePrefix) return renvoyerValeurCorrecte("fmt_auteur");
139
		else return renvoyerValeurCorrecte(PREFIXE+"_fmt_auteur");
106 aurelien 140
	}
783 jpm 141
	public void setAuteur(String auteurFormate) {
1480 cyprien 142
		if (removePrefix) this.set("fmt_auteur", auteurFormate);
143
		else this.set(PREFIXE+"_fmt_auteur", auteurFormate);
783 jpm 144
	}
106 aurelien 145
 
146
	public String getCollection() {
1480 cyprien 147
		if (removePrefix) return renvoyerValeurCorrecte("collection");
148
		else return renvoyerValeurCorrecte(PREFIXE+"_collection");
106 aurelien 149
	}
783 jpm 150
	public void setCollection(String collection) {
1480 cyprien 151
		if (removePrefix) this.set("collection", collection);
152
		else this.set(PREFIXE+"_collection", collection);
783 jpm 153
	}
106 aurelien 154
 
155
	public String getTitre() {
1480 cyprien 156
		if (removePrefix) return renvoyerValeurCorrecte("titre");
157
		else return renvoyerValeurCorrecte(PREFIXE+"_titre");
106 aurelien 158
	}
783 jpm 159
	public void setTitre(String titre) {
1480 cyprien 160
		if (removePrefix) this.set("titre", UtilString.ucFirst(titre));
161
		else this.set(PREFIXE+"_titre", UtilString.ucFirst(titre));
783 jpm 162
	}
106 aurelien 163
 
799 jpm 164
	public String getNomEditeur() {
165
		String editeurNom = getEditeur();
166
		if (editeurNom.matches("[0-9]+")) {
167
			editeurNom = editeur.getNom();
168
		}
169
		return editeurNom;
170
	}
106 aurelien 171
	public String getEditeur() {
1480 cyprien 172
		if (removePrefix) return getChaineDenormaliseUnique("ce_truk_editeur");
173
		else return getChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur");
106 aurelien 174
	}
783 jpm 175
	public void setEditeur(String editeur) {
1480 cyprien 176
		if (removePrefix) setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur);
177
		else setChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur", "AUTRE", editeur);
783 jpm 178
	}
106 aurelien 179
 
799 jpm 180
	public String getAnneeParution() {
1480 cyprien 181
		String date;
182
		if (removePrefix) date = renvoyerValeurCorrecte("date_parution");
183
		else date = renvoyerValeurCorrecte(PREFIXE+"_date_parution");
1474 cyprien 184
		if (date != null && !UtilString.isEmpty(date))
185
			return date.substring(0, 4);
186
		else
187
			return null;
799 jpm 188
	}
106 aurelien 189
	public String getDateParution() {
1480 cyprien 190
		if (removePrefix) return renvoyerValeurCorrecte("date_parution");
191
		else return renvoyerValeurCorrecte(PREFIXE+"_date_parution");
106 aurelien 192
	}
783 jpm 193
	public void setDateParution(String date) {
1480 cyprien 194
		if (removePrefix) this.set("date_parution", date);
195
		else this.set(PREFIXE+"_date_parution", date);
783 jpm 196
	}
106 aurelien 197
 
198
	public String getIndicationNvt() {
1480 cyprien 199
		if (removePrefix) return renvoyerValeurCorrecte("indication_nvt");
200
		else return renvoyerValeurCorrecte(PREFIXE+"_indication_nvt");
106 aurelien 201
	}
783 jpm 202
	public void setIndicationNvt(String nvt) {
1480 cyprien 203
		if (removePrefix) this.set("indication_nvt", nvt);
204
		else this.set(PREFIXE+"_indication_nvt", nvt);
783 jpm 205
	}
106 aurelien 206
 
207
	public String getFascicule() {
1480 cyprien 208
		if (removePrefix) return renvoyerValeurCorrecte("fascicule");
209
		else return renvoyerValeurCorrecte(PREFIXE+"_fascicule");
106 aurelien 210
	}
783 jpm 211
	public void setFascicule(String fascicule) {
1480 cyprien 212
		if (removePrefix) this.set("fascicule", fascicule);
213
		else this.set(PREFIXE+"_fascicule", fascicule);
783 jpm 214
	}
106 aurelien 215
 
216
	public String getPages() {
1480 cyprien 217
		if (removePrefix) return renvoyerValeurCorrecte("truk_pages");
218
		else return renvoyerValeurCorrecte(PREFIXE+"_truk_pages");
106 aurelien 219
	}
783 jpm 220
	public void setPages(String pages) {
1480 cyprien 221
		if (removePrefix) this.set("truk_pages", pages);
222
		else this.set(PREFIXE+"_truk_pages", pages);
783 jpm 223
	}
230 aurelien 224
 
106 aurelien 225
}