1 | /* |
---|
2 | * Created on 25 avr. 2005 |
---|
3 | */ |
---|
4 | package com.medias.megapoli.trade; |
---|
5 | |
---|
6 | import java.util.ArrayList; |
---|
7 | import java.util.Collections; |
---|
8 | import java.util.Set; |
---|
9 | |
---|
10 | import org.hibernate.HibernateException; |
---|
11 | import com.medias.database.objects.Capteur; |
---|
12 | import com.medias.database.objects.CategorieParam; |
---|
13 | import com.medias.database.objects.Commentaire; |
---|
14 | import com.medias.database.objects.Fabriquant; |
---|
15 | import com.medias.database.objects.Jeu; |
---|
16 | import com.medias.database.objects.Parametre; |
---|
17 | import com.medias.database.objects.Plateforme; |
---|
18 | import com.medias.database.objects.TypeCapteur; |
---|
19 | import com.medias.database.objects.Unite; |
---|
20 | import com.medias.megapoli.struts.forms.ParametreForm; |
---|
21 | import com.medias.utils.hibernate.CommunicationBD; |
---|
22 | |
---|
23 | |
---|
24 | /** |
---|
25 | * @author pignot |
---|
26 | * |
---|
27 | * Classe permettant, au moyen de requêtes sur la base de données, |
---|
28 | * de charger la description d'un paramÚtre |
---|
29 | */ |
---|
30 | public class ParametreAdapter { |
---|
31 | private Parametre parametre; |
---|
32 | |
---|
33 | public ParametreAdapter() { |
---|
34 | parametre = null; |
---|
35 | } |
---|
36 | |
---|
37 | public void loadParametreFromDatabase(ParametreForm paramForm, String id) { |
---|
38 | try { |
---|
39 | // Traitement de l'identifiant transmis |
---|
40 | String path = ""; |
---|
41 | if (id.indexOf("_") != -1) { |
---|
42 | path = id.substring(id.indexOf("_")+1); |
---|
43 | id = id.substring(0,id.indexOf("_")); |
---|
44 | } |
---|
45 | CommunicationBD.open(); |
---|
46 | Parametre param = (Parametre)CommunicationBD.getObjectById(Parametre.class, new Integer(id)); |
---|
47 | // Recherche des capteurs associés |
---|
48 | //List<?> capts = CommunicationBD.getList("select req.capteur from RequeteParametreCapteur as req where parametre_id='" + id + "'"); |
---|
49 | Set<Capteur> capts = param.getCapteurs(); |
---|
50 | // Recherche des plateformes associées |
---|
51 | //List<?> plats = CommunicationBD.getList("select req.plateforme from RequetePlateformeParametre as req where parametre_id='" + id + "'"); |
---|
52 | Set<Plateforme> plats = param.getPlateformes(); |
---|
53 | // Recherche des plateformes associées |
---|
54 | //List<?> jeus = CommunicationBD.getList("select req.jeu from RequeteParametreJeu as req where parametre_id='" + id + "'"); |
---|
55 | Set<Jeu> jeus = param.getJeus(); |
---|
56 | parametre = new Parametre(); |
---|
57 | CategorieParam categorieParam = new CategorieParam(); |
---|
58 | categorieParam.setCategorieParamDomaine(param.getCategorieParam().getCategorieParamDomaine()); |
---|
59 | categorieParam.setCategorieParamNom(param.getCategorieParam().getCategorieParamNom()); |
---|
60 | parametre.setCategorieParam(categorieParam); |
---|
61 | parametre.setParametreCode(param.getParametreCode()); |
---|
62 | parametre.setParametreId(param.getParametreId()); |
---|
63 | parametre.setParametreNom(param.getParametreNom()); |
---|
64 | Unite unite = new Unite(); |
---|
65 | unite.setUniteCode(param.getUnite().getUniteCode()); |
---|
66 | parametre.setUnite(unite); |
---|
67 | if (param.getCommentaire() != null) { |
---|
68 | Commentaire commentaire = new Commentaire(); |
---|
69 | commentaire.setCommentaireTxt(param.getCommentaire().getCommentaireTxt()); |
---|
70 | parametre.setCommentaire(commentaire); |
---|
71 | } |
---|
72 | ArrayList<Capteur> capteurs = new ArrayList<Capteur>(); |
---|
73 | Capteur capteur; |
---|
74 | TypeCapteur typeCapteur; |
---|
75 | Fabriquant fabriquant; |
---|
76 | for (Capteur capt: capts) { |
---|
77 | capteur = new Capteur(); |
---|
78 | capteur.setCapteurId(capt.getCapteurId()); |
---|
79 | capteur.setCapteurModele(capt.getCapteurModele()); |
---|
80 | capteur.setCapteurNumserie(capt.getCapteurNumserie()); |
---|
81 | typeCapteur = new TypeCapteur(); |
---|
82 | typeCapteur.setTypeCapteurNom(capt.getTypeCapteur().getTypeCapteurNom()); |
---|
83 | capteur.setTypeCapteur(typeCapteur); |
---|
84 | fabriquant = new Fabriquant(); |
---|
85 | fabriquant.setFabriquantNom(capt.getFabriquant().getFabriquantNom()); |
---|
86 | capteur.setFabriquant(fabriquant); |
---|
87 | capteurs.add(capteur); |
---|
88 | } |
---|
89 | Collections.sort(capteurs,new Capteur().new ComparatorNom()); |
---|
90 | ArrayList<Plateforme> plateformes = new ArrayList<Plateforme>(); |
---|
91 | Plateforme plateforme; |
---|
92 | for (Plateforme plat: plats) { |
---|
93 | plateforme = new Plateforme(); |
---|
94 | plateforme.setPlateformeId(plat.getPlateformeId()); |
---|
95 | plateforme.setPlateformeNom(plat.getPlateformeNom()); |
---|
96 | plateformes.add(plateforme); |
---|
97 | } |
---|
98 | Collections.sort(plateformes,new Plateforme().new ComparatorNom()); |
---|
99 | ArrayList<Jeu> jeux = new ArrayList<Jeu>(); |
---|
100 | Jeu jeu; |
---|
101 | for (Jeu j : jeus) { |
---|
102 | jeu = new Jeu(); |
---|
103 | jeu.setJeuId(j.getJeuId()); |
---|
104 | jeu.setJeuNom(j.getJeuNom()); |
---|
105 | jeu.setNbFichiers(j.getFichiers().size()); |
---|
106 | jeux.add(jeu); |
---|
107 | } |
---|
108 | CommunicationBD.close(); |
---|
109 | paramForm.setParametre(parametre); |
---|
110 | paramForm.setCapteurs(capteurs); |
---|
111 | paramForm.setPlateformes(plateformes); |
---|
112 | paramForm.setJeux(jeux); |
---|
113 | paramForm.setPath(path); |
---|
114 | } catch (HibernateException e) { |
---|
115 | System.out.println("exception_ParametreAdapter"); |
---|
116 | // Libération de la connection à la base de données |
---|
117 | try { |
---|
118 | CommunicationBD.close(); |
---|
119 | } catch (HibernateException ex) { |
---|
120 | |
---|
121 | } |
---|
122 | } |
---|
123 | } |
---|
124 | |
---|
125 | public static com.medias.xml.metadata.Parametre dbParametreToMetaParametre(Parametre dbParametre) { |
---|
126 | com.medias.xml.metadata.Parametre parametre = new com.medias.xml.metadata.Parametre(); |
---|
127 | |
---|
128 | parametre.setAbrev(dbParametre.getParametreCode()); |
---|
129 | parametre.setNom(dbParametre.getParametreNom()); |
---|
130 | parametre.setUnite(dbParametre.getUnite().getUniteCode()); |
---|
131 | parametre.setCategorie(dbParametre.getCategorieParam() |
---|
132 | .getCategorieParamNom()); |
---|
133 | parametre.setDomaine(dbParametre.getCategorieParam() |
---|
134 | .getCategorieParamDomaine()); |
---|
135 | parametre.setIdParametre(String.valueOf(dbParametre.getParametreId())); |
---|
136 | if (dbParametre.getCommentaire() != null) { |
---|
137 | parametre.setDesc(dbParametre.getCommentaire().getCommentaireTxt()); |
---|
138 | } |
---|
139 | return parametre; |
---|
140 | } |
---|
141 | |
---|
142 | public static ArrayList<com.medias.xml.metadata.Parametre> dbParametresToMetaParametres(Set<Parametre> dbParametres) { |
---|
143 | ArrayList<com.medias.xml.metadata.Parametre> result = new ArrayList<com.medias.xml.metadata.Parametre>(); |
---|
144 | for (Parametre p : dbParametres){ |
---|
145 | result.add(dbParametreToMetaParametre(p)); |
---|
146 | } |
---|
147 | Collections.sort(result,new com.medias.xml.metadata.Parametre().new ComparatorNom()); |
---|
148 | return result; |
---|
149 | } |
---|
150 | } |
---|