1 | /* |
---|
2 | * Created on 16 Janvier. 2006 |
---|
3 | */ |
---|
4 | |
---|
5 | package com.medias.integration.prevalidation; |
---|
6 | |
---|
7 | import com.medias.EcritureLog; |
---|
8 | import com.medias.database.objects.Capteur; |
---|
9 | import com.medias.database.objects.Parametre; |
---|
10 | import com.medias.integration.lecture_ecriture.LectureCapteurs; |
---|
11 | import com.medias.integration.lecture_ecriture.LectureParametres; |
---|
12 | import com.medias.integration.lecture_ecriture.LectureUnites; |
---|
13 | import com.medias.integration.vues.ParametreModele; |
---|
14 | |
---|
15 | import java.io.BufferedReader; |
---|
16 | import java.io.File; |
---|
17 | import java.io.FileReader; |
---|
18 | import java.io.IOException; |
---|
19 | import java.util.ArrayList; |
---|
20 | |
---|
21 | /** |
---|
22 | * @author |
---|
23 | * |
---|
24 | * Classe permettant de Prevalider un ensemble de fichier d'un jeu donné |
---|
25 | */ |
---|
26 | |
---|
27 | public class PreValidation { |
---|
28 | public PreValidation(File fichier) { |
---|
29 | this.fichier = fichier; |
---|
30 | entete = new ArrayList<String>(); |
---|
31 | mesures = new ArrayList<String>(); |
---|
32 | } |
---|
33 | |
---|
34 | public void prevalider(LectureParametres lectureParametres, LectureUnites lectureUnites, LectureCapteurs lectureCapteurs |
---|
35 | , ArrayList<Parametre> parametres, ArrayList<Capteur> capteurs, String nomJeu) { |
---|
36 | // Fichier constitué d'un entéte de type METEO |
---|
37 | if ((nomJeu.equals("METEO-SIRTA") || nomJeu.equals("weather SIRTA")) && fichier.getName().endsWith(".txt")) { |
---|
38 | PreValidationMETEOFILE prevalidationMETEOFILE = new PreValidationMETEOFILE(fichier); |
---|
39 | prevalidationMETEOFILE.lireFichier(lectureParametres,lectureUnites,lectureCapteurs,parametres,capteurs); |
---|
40 | this.setEntete(prevalidationMETEOFILE.getEntete()); |
---|
41 | this.setMesures(prevalidationMETEOFILE.getMesures()); |
---|
42 | this.setNbParams(prevalidationMETEOFILE.getNbParams()); |
---|
43 | this.setInfoParams(prevalidationMETEOFILE.getInfoParams()); |
---|
44 | prevalidationMETEOFILE = null; |
---|
45 | } |
---|
46 | // Fichier constitué d'un entéte NASA AMES |
---|
47 | else if (fichier.getName().endsWith(".na") || fichier.getName().endsWith(".txt") || fichier.getName().endsWith(".ames") || fichier.getName().endsWith(".nas") || fichier.getName().endsWith(".ict")) { |
---|
48 | int formatFichierNASAAMES = 0; |
---|
49 | try { |
---|
50 | BufferedReader buf = new BufferedReader(new FileReader(fichier)); |
---|
51 | String ligne = buf.readLine(); |
---|
52 | if (ligne != null) { |
---|
53 | formatFichierNASAAMES = Integer.parseInt(ligne.substring(ligne.indexOf(" ")+1).trim()); |
---|
54 | } |
---|
55 | } catch (IOException e) { |
---|
56 | e.printStackTrace(); |
---|
57 | } |
---|
58 | if (formatFichierNASAAMES == 1001) { |
---|
59 | PreValidationNASAAMES1001 preValidationNASAAMES1001 = new PreValidationNASAAMES1001(fichier); |
---|
60 | preValidationNASAAMES1001.lireFichier(lectureParametres,lectureUnites,lectureCapteurs,parametres,capteurs); |
---|
61 | this.setEntete(preValidationNASAAMES1001.getEntete()); |
---|
62 | this.setMesures(preValidationNASAAMES1001.getMesures()); |
---|
63 | this.setNbParams(preValidationNASAAMES1001.getNbParams()); |
---|
64 | this.setInfoParams(preValidationNASAAMES1001.getInfoParams()); |
---|
65 | preValidationNASAAMES1001 = null; |
---|
66 | } |
---|
67 | } |
---|
68 | else { |
---|
69 | EcritureLog.ecrire("\nErreur sur l'extension du fichier : Les extensions valides sont na, ames, txt, ict ou nas","err"); |
---|
70 | } |
---|
71 | } |
---|
72 | |
---|
73 | public void vider() { |
---|
74 | fichier = null; |
---|
75 | mesures = null; |
---|
76 | entete = null; |
---|
77 | infoParams = null; |
---|
78 | } |
---|
79 | |
---|
80 | /** |
---|
81 | * On retrouve les indices de capteurs correspondant aux noms de capteurs |
---|
82 | * apparaissant dans le fichier de données |
---|
83 | */ |
---|
84 | protected ArrayList<Integer> findIndicesCaptInFile(LectureCapteurs lectureCapteurs, ArrayList<Capteur> capteurs) { |
---|
85 | ArrayList<Integer> numsCapt = new ArrayList<Integer>(); |
---|
86 | Capteur capt; |
---|
87 | String nomFromFile, modele, numserie, fabriquant, type; |
---|
88 | int captTrouve; |
---|
89 | for (int numCapt = 0; numCapt < lectureCapteurs.getTypesCapt().size(); numCapt++) { |
---|
90 | nomFromFile = lectureCapteurs.getNomsCaptFromFile().get(numCapt); |
---|
91 | captTrouve = -1; |
---|
92 | for (String ligne: infoSup) { |
---|
93 | if (captTrouve == -1 && ligne.indexOf(nomFromFile) != -1) { |
---|
94 | // On a trouvé un nom de capteur dans le fichier qui correspond au capteur numCapt de la liste des capteurs |
---|
95 | modele = lectureCapteurs.getModelesCapt().get(numCapt); |
---|
96 | numserie = lectureCapteurs.getNumsSeriesCapt().get(numCapt); |
---|
97 | fabriquant = lectureCapteurs.getFabriquantsCapt().get(numCapt); |
---|
98 | type = lectureCapteurs.getTypesCapt().get(numCapt); |
---|
99 | for (int numC = 0; numC < capteurs.size(); numC++) { |
---|
100 | capt = capteurs.get(numC); |
---|
101 | if ((type.equals("") || capt.getTypeCapteur().getTypeCapteurNom().equals(type)) |
---|
102 | && (fabriquant.equals("") || capt.getFabriquant().getFabriquantNom().equals(fabriquant)) |
---|
103 | && (modele.equals("") || capt.getCapteurModele().equals(modele)) |
---|
104 | && (numserie.equals("") || capt.getCapteurNumserie().equals(numserie))) { |
---|
105 | // On a fait le lien entre le capteur numCapt de la liste XLS et le capteur numC de la liste d'objets |
---|
106 | captTrouve = numC; |
---|
107 | // numsCapt.add(new Integer(numC)); |
---|
108 | break; |
---|
109 | } |
---|
110 | } |
---|
111 | } |
---|
112 | } |
---|
113 | if (captTrouve != -1) numsCapt.add(new Integer(captTrouve)); |
---|
114 | } |
---|
115 | return numsCapt; |
---|
116 | } |
---|
117 | |
---|
118 | /** |
---|
119 | * A partir du nom d'unité, va chercher dans le tableau des unités et récupére le type et le code de l'unité |
---|
120 | */ |
---|
121 | protected String[] findUnite(String nomUnite, LectureUnites lectureUnites) { |
---|
122 | String code, nom, type = null; |
---|
123 | String[] res = new String[2]; |
---|
124 | for (int indiceUnite = 0; indiceUnite < lectureUnites.getCodesUni().size(); indiceUnite++) { |
---|
125 | code = lectureUnites.getCodesUni().get(indiceUnite); |
---|
126 | nom = lectureUnites.getNomsUni().get(indiceUnite); |
---|
127 | if (code.trim().equals(nomUnite) || nom.trim().equals(nomUnite)) { |
---|
128 | type = lectureUnites.getTypesUni().get(indiceUnite); |
---|
129 | res[0] = code; |
---|
130 | res[1] = type; |
---|
131 | break; |
---|
132 | } |
---|
133 | } |
---|
134 | return res; |
---|
135 | } |
---|
136 | |
---|
137 | /** |
---|
138 | * A partir du nom de paramétre du fichier, va chercher dans le tableau des paramétres, récupére le code du paramétre |
---|
139 | * puis renvoie l'indice é lequel est situé le paramétre correspondant dans la liste des paramétres du jeu |
---|
140 | */ |
---|
141 | protected int findIndiceParam(String nomParam, LectureParametres lectureParametres, ArrayList<Parametre> parametres) { |
---|
142 | if (parametres.size() == 1) return 0; |
---|
143 | String nomInFile, code; |
---|
144 | for (int indiceP = 0; indiceP < lectureParametres.getNomsParam().size(); indiceP++) { |
---|
145 | nomInFile = lectureParametres.getNomsParamFromFile().get(indiceP); |
---|
146 | if (nomInFile.trim().equals(nomParam)) { |
---|
147 | code = lectureParametres.getCodesMegapoliParam().get(indiceP); |
---|
148 | for (int numP = 0; numP < parametres.size(); numP++) { |
---|
149 | if (parametres.get(numP).getParametreCode().equals(code)) return numP; |
---|
150 | } |
---|
151 | } |
---|
152 | } |
---|
153 | return -1; |
---|
154 | } |
---|
155 | |
---|
156 | /** |
---|
157 | * Retrouve l'indice du capteur correspondant au code de paramétre donné |
---|
158 | */ |
---|
159 | protected int findIndiceCapt(String codeParam, ArrayList<Integer> indicesCapteur, ArrayList<Capteur> capteurs) { |
---|
160 | if (capteurs.size() == 1) return 0; |
---|
161 | Capteur capt; |
---|
162 | for (Integer indice: indicesCapteur) { |
---|
163 | capt = capteurs.get(indice.intValue()); |
---|
164 | for (Parametre param : capt.getParametres()) { |
---|
165 | if (param.getParametreCode().equals(codeParam)) { |
---|
166 | return indice.intValue(); |
---|
167 | } |
---|
168 | } |
---|
169 | } |
---|
170 | return -1; |
---|
171 | } |
---|
172 | |
---|
173 | public ArrayList<String> getEntete() { |
---|
174 | return entete; |
---|
175 | } |
---|
176 | |
---|
177 | public void setEntete(ArrayList<String> entete) { |
---|
178 | this.entete = entete; |
---|
179 | } |
---|
180 | |
---|
181 | public ArrayList<String> getMesures() { |
---|
182 | return mesures; |
---|
183 | } |
---|
184 | |
---|
185 | public void setMesures(ArrayList<String> mesures) { |
---|
186 | this.mesures = mesures; |
---|
187 | } |
---|
188 | |
---|
189 | public File getFichier() { |
---|
190 | return fichier; |
---|
191 | } |
---|
192 | |
---|
193 | public void setFichier(File fichier) { |
---|
194 | this.fichier = fichier; |
---|
195 | } |
---|
196 | |
---|
197 | public int getNbParams() { |
---|
198 | return nbParams; |
---|
199 | } |
---|
200 | |
---|
201 | public void setNbParams(int nbParams) { |
---|
202 | this.nbParams = nbParams; |
---|
203 | } |
---|
204 | |
---|
205 | public ArrayList<ParametreModele> getInfoParams() { |
---|
206 | return infoParams; |
---|
207 | } |
---|
208 | |
---|
209 | public void setInfoParams(ArrayList<ParametreModele> infoParams) { |
---|
210 | this.infoParams = infoParams; |
---|
211 | } |
---|
212 | |
---|
213 | // private String jeu; |
---|
214 | |
---|
215 | protected File fichier; |
---|
216 | protected ArrayList<String> entete; |
---|
217 | protected ArrayList<String> mesures; |
---|
218 | protected int nbParams; |
---|
219 | protected ArrayList<ParametreModele> infoParams; |
---|
220 | protected ArrayList<String> infoSup; |
---|
221 | } |
---|