Subversion Repositories eFlore/Applications.coel

Rev

Rev 1568 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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