comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java @ 1220:3c860d3e79d9

Importer: Parse HYKs from importer. flys-backend/trunk@2346 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 17 Jul 2011 22:45:00 +0000
parents f08fe480092c
children 979ff070e368
comparison
equal deleted inserted replaced
1219:d80997bd94ce 1220:3c860d3e79d9
19 19
20 import de.intevation.flys.utils.FileTools; 20 import de.intevation.flys.utils.FileTools;
21 import de.intevation.flys.utils.FileTools.HashedFile; 21 import de.intevation.flys.utils.FileTools.HashedFile;
22 22
23 import de.intevation.flys.importer.parsers.PRFParser; 23 import de.intevation.flys.importer.parsers.PRFParser;
24 import de.intevation.flys.importer.parsers.HYKParser;
24 import de.intevation.flys.importer.parsers.AnnotationsParser; 25 import de.intevation.flys.importer.parsers.AnnotationsParser;
25 import de.intevation.flys.importer.parsers.AnnotationClassifier; 26 import de.intevation.flys.importer.parsers.AnnotationClassifier;
26 import de.intevation.flys.importer.parsers.PegelGltParser; 27 import de.intevation.flys.importer.parsers.PegelGltParser;
27 import de.intevation.flys.importer.parsers.WstParser; 28 import de.intevation.flys.importer.parsers.WstParser;
28 29
60 61
61 protected List<ImportGauge> gauges; 62 protected List<ImportGauge> gauges;
62 63
63 protected List<ImportAnnotation> annotations; 64 protected List<ImportAnnotation> annotations;
64 65
66 protected List<ImportHYK> hyks;
67
65 protected List<ImportCrossSection> crossSections; 68 protected List<ImportCrossSection> crossSections;
66 69
67 protected List<ImportWst> extraWsts; 70 protected List<ImportWst> extraWsts;
68 71
69 protected List<ImportWst> fixations; 72 protected List<ImportWst> fixations;
79 protected AnnotationClassifier annotationClassifier; 82 protected AnnotationClassifier annotationClassifier;
80 83
81 protected River peer; 84 protected River peer;
82 85
83 public ImportRiver() { 86 public ImportRiver() {
87 hyks = new ArrayList<ImportHYK>();
84 crossSections = new ArrayList<ImportCrossSection>(); 88 crossSections = new ArrayList<ImportCrossSection>();
85 extraWsts = new ArrayList<ImportWst>(); 89 extraWsts = new ArrayList<ImportWst>();
86 fixations = new ArrayList<ImportWst>(); 90 fixations = new ArrayList<ImportWst>();
87 officialLines = new ArrayList<ImportWst>(); 91 officialLines = new ArrayList<ImportWst>();
88 floodWater = new ArrayList<ImportWst>(); 92 floodWater = new ArrayList<ImportWst>();
136 140
137 public void parseDependencies() throws IOException { 141 public void parseDependencies() throws IOException {
138 parseGauges(); 142 parseGauges();
139 parseAnnotations(); 143 parseAnnotations();
140 parsePRFs(); 144 parsePRFs();
145 parseHYKs();
141 parseWst(); 146 parseWst();
142 parseExtraWsts(); 147 parseExtraWsts();
143 parseFixations(); 148 parseFixations();
144 parseOfficialLines(); 149 parseOfficialLines();
145 parseFloodWater(); 150 parseFloodWater();
359 AnnotationsParser aparser = 364 AnnotationsParser aparser =
360 new AnnotationsParser(annotationClassifier); 365 new AnnotationsParser(annotationClassifier);
361 aparser.parse(riverDir); 366 aparser.parse(riverDir);
362 367
363 annotations = aparser.getAnnotations(); 368 annotations = aparser.getAnnotations();
369 }
370
371 public void parseHYKs() {
372 log.info("looking for HYK files");
373 HYKParser parser = new HYKParser();
374 File riverDir = wstFile
375 .getParentFile() // Basisdaten
376 .getParentFile() // Hydrologie
377 .getParentFile(); // <river>
378
379 parser.parseHYKs(riverDir, new HYKParser.Callback() {
380
381 Set<HashedFile> hfs = new HashSet<HashedFile>();
382
383 @Override
384 public boolean hykAccept(File file) {
385 HashedFile hf = new HashedFile(file);
386 boolean success = hfs.add(hf);
387 if (!success) {
388 log.warn("HYK file '" + file + "' seems to be a duplicate.");
389 }
390 return success;
391 }
392
393 @Override
394 public void hykParsed(HYKParser parser) {
395 log.debug("callback from HYK parser");
396 ImportHYK hyk = parser.getHYK();
397 hyk.setRiver(ImportRiver.this);
398 hyks.add(hyk);
399 }
400 });
364 } 401 }
365 402
366 public void parsePRFs() { 403 public void parsePRFs() {
367 log.info("looking for PRF files"); 404 log.info("looking for PRF files");
368 PRFParser parser = new PRFParser(); 405 PRFParser parser = new PRFParser();

http://dive4elements.wald.intevation.org