Subversion Repositories eFlore/Applications.coel

Rev

Rev 1417 | Rev 1516 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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