1 | /** |
---|
2 | * Created on 17 Jan. 2007 |
---|
3 | * * @author |
---|
4 | */ |
---|
5 | package com.medias.integration.lecture_ecriture; |
---|
6 | |
---|
7 | import com.medias.Constantes; |
---|
8 | import com.medias.EcritureLog; |
---|
9 | import com.medias.integration.vues.ParametreModele; |
---|
10 | import integration.exceptions.XMLException; |
---|
11 | import org.jdom.Element; |
---|
12 | |
---|
13 | import java.io.File; |
---|
14 | import java.util.ArrayList; |
---|
15 | import java.util.Iterator; |
---|
16 | /** |
---|
17 | * Lecture et déchiffrrage d'un modéle XML décrivant la structure d'un fichier |
---|
18 | * de données correspondant é un jeu donné. |
---|
19 | */ |
---|
20 | public class LectureModeleXML { |
---|
21 | public LectureModeleXML(String categorie, String jeu) { |
---|
22 | this.categorie = categorie; |
---|
23 | this.jeu = jeu; |
---|
24 | } |
---|
25 | |
---|
26 | public void lireModele() { |
---|
27 | // Chemin du modéle xml é manipuler |
---|
28 | String modele = Constantes.cheminModeles + "/" + categorie + "/" + jeu + "_modele.xml"; |
---|
29 | // Etape de Construction du "parser XML" |
---|
30 | XMLParser builder = new XMLParser(); |
---|
31 | File f = new File(modele); |
---|
32 | if (f.exists()) { |
---|
33 | try { |
---|
34 | builder.readXml(modele); |
---|
35 | // EcritureLog.ecrire("******* Modéle du jeu de données : "+ f.getName() + " *******", "out"); |
---|
36 | } catch (XMLException e) { |
---|
37 | e.printStackTrace(); |
---|
38 | } |
---|
39 | } else { |
---|
40 | EcritureLog.ecrire( "Fichier " + f.getName() + " non trouvé !", "err" ); |
---|
41 | } |
---|
42 | root = builder.getRoot(); |
---|
43 | } |
---|
44 | |
---|
45 | // Partie des données é manimpuler |
---|
46 | /** |
---|
47 | * Renvoie les paramétres avec leurs caractéristiques dans une liste. |
---|
48 | * |
---|
49 | * @return La liste de tous les paramétres et leurs caractéristiques. |
---|
50 | */ |
---|
51 | public ArrayList<ParametreModele> getParametres() { |
---|
52 | ArrayList<ParametreModele> infosParam = new ArrayList<ParametreModele>(); |
---|
53 | Iterator<?> it = root.getChild("donnees").getChildren("parametre").iterator(); |
---|
54 | while (it.hasNext()) { |
---|
55 | Element child = (Element) it.next(); |
---|
56 | infosParam.add(new ParametreModele(child.getAttributeValue("nom"), |
---|
57 | child.getAttributeValue("type"), child.getAttributeValue("fonction"), |
---|
58 | child.getAttributeValue("unite"), child.getAttributeValue("delta"), |
---|
59 | child.getAttributeValue("numero"),child.getAttributeValue("format"),child.getAttributeValue("lod"))); |
---|
60 | } |
---|
61 | return infosParam; |
---|
62 | } |
---|
63 | |
---|
64 | /** |
---|
65 | * Renvoie les paramétres associés é une valeur avec leurs caractéristiques dans une liste. |
---|
66 | * |
---|
67 | * @return La liste de tous les paramétres associés et leurs caractéristiques. |
---|
68 | */ |
---|
69 | public ArrayList<ParametreModele> getParametresValeur() { |
---|
70 | ArrayList<ParametreModele> infosParam = new ArrayList<ParametreModele>(); |
---|
71 | Iterator<?> it = root.getChild("donnees").getChildren("parametre").iterator(); |
---|
72 | String fonction; |
---|
73 | while (it.hasNext()) { |
---|
74 | Element child = (Element) it.next(); |
---|
75 | fonction = child.getAttributeValue("fonction"); |
---|
76 | if (fonction.equals(Constantes.nomFonctionInsererVal)) { |
---|
77 | infosParam.add(new ParametreModele(child.getAttributeValue("nom"), |
---|
78 | child.getAttributeValue("type"), fonction, |
---|
79 | child.getAttributeValue("unite"), child.getAttributeValue("delta"), |
---|
80 | child.getAttributeValue("numero"), child.getAttributeValue("format"),child.getAttributeValue("lod"))); |
---|
81 | } |
---|
82 | } |
---|
83 | return infosParam; |
---|
84 | } |
---|
85 | |
---|
86 | /** |
---|
87 | * Renvoie des numéros correspondant aux plateformes et leur références. |
---|
88 | */ |
---|
89 | // Liste des plateformes é manipuler |
---|
90 | public ArrayList<String> getNumsPlateforme() { |
---|
91 | ArrayList<String> numPlats = new ArrayList<String>(); |
---|
92 | Iterator<?> it = root.getChild("donnees").getChildren("plateforme").iterator(); |
---|
93 | Element child; |
---|
94 | while (it.hasNext()) { |
---|
95 | child = (Element) it.next(); |
---|
96 | numPlats.add(child.getAttributeValue("numero")); |
---|
97 | } |
---|
98 | return numPlats; |
---|
99 | } |
---|
100 | |
---|
101 | /** |
---|
102 | * Renvoie des numéros correspondant aux capteurs et leur références. |
---|
103 | */ |
---|
104 | // Liste des capteurs é manipuler |
---|
105 | public ArrayList<String> getNumsCapteur() { |
---|
106 | ArrayList<String> numCapts = new ArrayList<String>(); |
---|
107 | Iterator<?> it = root.getChild("donnees").getChildren("capteur").iterator(); |
---|
108 | Element child; |
---|
109 | while (it.hasNext()) { |
---|
110 | child = (Element) it.next(); |
---|
111 | numCapts.add(child.getAttributeValue("numero")); |
---|
112 | } |
---|
113 | return numCapts; |
---|
114 | } |
---|
115 | |
---|
116 | // Partie faisant référence é l'entéte |
---|
117 | public String getNomCategorie() { |
---|
118 | return root.getChild("entete").getAttributeValue("categorie"); |
---|
119 | } |
---|
120 | |
---|
121 | // Références relatives au jeu |
---|
122 | public String getNomJeu() { |
---|
123 | return root.getChild("entete").getAttributeValue("jeu"); |
---|
124 | } |
---|
125 | |
---|
126 | // Description du jeu en question |
---|
127 | public String getDescriptionJeu() { |
---|
128 | return root.getChild("entete").getAttributeValue("description"); |
---|
129 | } |
---|
130 | |
---|
131 | // Valeur absente |
---|
132 | public String getValeurAbsente() { |
---|
133 | return root.getChild("entete").getAttributeValue("valeur_absente"); |
---|
134 | } |
---|
135 | |
---|
136 | // Noms relatifs aux organismes |
---|
137 | public String getNumOrganismeJeu() { |
---|
138 | return root.getChild("entete").getAttributeValue("organisme"); |
---|
139 | } |
---|
140 | |
---|
141 | // Delimiteur du modéle |
---|
142 | public String getDelimiteur() { |
---|
143 | return root.getChild( "entete" ).getAttributeValue("delimiteur"); |
---|
144 | } |
---|
145 | |
---|
146 | // Subdivision ou non |
---|
147 | public String getSubdiviser() { |
---|
148 | return root.getChild( "entete" ).getAttributeValue("subdiviser"); |
---|
149 | } |
---|
150 | |
---|
151 | // Coordonnées de la personne "pi" |
---|
152 | public String getNumeroPi() { |
---|
153 | return root.getChild("entete").getChild("pi").getAttributeValue( |
---|
154 | "numero"); |
---|
155 | } |
---|
156 | |
---|
157 | // Coordonnées de la personne "contact" |
---|
158 | public String getNumeroContact() { |
---|
159 | return root.getChild("entete").getChild("contact").getAttributeValue("numero"); |
---|
160 | } |
---|
161 | |
---|
162 | // Coordonnées de la personne "integrateur" |
---|
163 | public String getNumeroIntegrateur() { |
---|
164 | return root.getChild("entete").getChild("integrateur").getAttributeValue("numero"); |
---|
165 | } |
---|
166 | |
---|
167 | private Element root; |
---|
168 | |
---|
169 | private String categorie; |
---|
170 | |
---|
171 | private String jeu; |
---|
172 | } |
---|