source: ether_megapoli/trunk/service/implementation/com/medias/integration_old/prevalidation/PreValidation.java @ 486

Last change on this file since 486 was 486, checked in by vmipsl, 12 years ago

BO insertion données _ ajout code medias
clean

  • Property svn:executable set to *
File size: 7.7 KB
Line 
1/*
2 * Created on 16 Janvier. 2006
3 */
4
5package integration.prevalidation;
6
7import com.medias.EcritureLog;
8import com.medias.database.objects.Capteur;
9import com.medias.database.objects.Parametre;
10import integration.lecture_ecriture.LectureCapteurs;
11import integration.lecture_ecriture.LectureParametres;
12import integration.lecture_ecriture.LectureUnites;
13import integration.vues.ParametreModele;
14
15import java.io.BufferedReader;
16import java.io.File;
17import java.io.FileReader;
18import java.io.IOException;
19import java.util.ArrayList;
20
21/**
22 * @author
23 *
24 * Classe permettant de Prevalider un ensemble de fichier d'un jeu donné
25 */
26
27public 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                        integration.prevalidation.PreValidationMETEOFILE prevalidationMETEOFILE = new integration.prevalidation.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                                integration.prevalidation.PreValidationNASAAMES1001 preValidationNASAAMES1001 = new integration.prevalidation.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}
Note: See TracBrowser for help on using the repository browser.