comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java @ 4767:03246a8b3869

ImportRiver: Added w80 and hook for da50 parsing (not implemented).
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 04 Jan 2013 11:17:40 +0100
parents 94b39073f0f7
children a70de5298248
comparison
equal deleted inserted replaced
4766:655e86f025c1 4767:03246a8b3869
32 import de.intevation.flys.importer.parsers.PRFParser; 32 import de.intevation.flys.importer.parsers.PRFParser;
33 import de.intevation.flys.importer.parsers.PegelGltParser; 33 import de.intevation.flys.importer.parsers.PegelGltParser;
34 import de.intevation.flys.importer.parsers.SQRelationParser; 34 import de.intevation.flys.importer.parsers.SQRelationParser;
35 import de.intevation.flys.importer.parsers.SedimentDensityParser; 35 import de.intevation.flys.importer.parsers.SedimentDensityParser;
36 import de.intevation.flys.importer.parsers.SedimentYieldParser; 36 import de.intevation.flys.importer.parsers.SedimentYieldParser;
37 import de.intevation.flys.importer.parsers.W80Parser;
37 import de.intevation.flys.importer.parsers.WaterlevelDifferencesParser; 38 import de.intevation.flys.importer.parsers.WaterlevelDifferencesParser;
38 import de.intevation.flys.importer.parsers.WaterlevelParser; 39 import de.intevation.flys.importer.parsers.WaterlevelParser;
39 import de.intevation.flys.importer.parsers.WstParser; 40 import de.intevation.flys.importer.parsers.WstParser;
40 import de.intevation.flys.model.River; 41 import de.intevation.flys.model.River;
41 import de.intevation.flys.model.Unit; 42 import de.intevation.flys.model.Unit;
227 public void parseDependencies() throws IOException { 228 public void parseDependencies() throws IOException {
228 parseGauges(); 229 parseGauges();
229 parseAnnotations(); 230 parseAnnotations();
230 parsePRFs(); 231 parsePRFs();
231 parseDA66s(); 232 parseDA66s();
233 parseDA50s();
234 parseW80s();
232 parseHYKs(); 235 parseHYKs();
233 parseWst(); 236 parseWst();
234 parseExtraWsts(); 237 parseExtraWsts();
235 parseFixations(); 238 parseFixations();
236 parseOfficialLines(); 239 parseOfficialLines();
907 lines.add(new ImportCrossSectionLine(km, points)); 910 lines.add(new ImportCrossSectionLine(km, points));
908 } 911 }
909 912
910 crossSections.add(new ImportCrossSection( 913 crossSections.add(new ImportCrossSection(
911 ImportRiver.this, description, ti, lines)); 914 ImportRiver.this, description, ti, lines));
915 }
916
917 /** Create a W80 Parser and parse w80 files found. */
918 public void parseW80s() {
919 if (Config.INSTANCE.skipW80s()) {
920 log.info("skip parsing W80s");
921 }
922 W80Parser parser = new W80Parser();
923 File riverDir = wstFile
924 .getParentFile() // Basisdaten
925 .getParentFile() // Hydrologie
926 .getParentFile(); // <river>
927
928 // TODO this can probably be further merged with implementation for PRF parser.
929 parser.parseW80s(riverDir, new CrossSectionParser.Callback() {
930
931 Set<HashedFile> w80s = new HashSet<HashedFile>();
932
933 @Override
934 public boolean accept(File file) {
935 HashedFile hf = new HashedFile(file);
936 boolean success = w80s.add(hf);
937 if (!success) {
938 log.warn("W80 file '" + file + "' seems to be a duplicate.");
939 }
940 return success;
941 }
942
943 @Override
944 public void parsed(CrossSectionParser parser) {
945 log.debug("callback from W80 parser");
946
947 addCrossSections(parser);
948 }
949 });
950 }
951
952 public void parseDA50s() {
953 if (Config.INSTANCE.skipDA50s()) {
954 log.info("skip parsing DA50s");
955 }
956 else log.warn("DA50 parsing not yet implemented");
912 } 957 }
913 958
914 959
915 /** Create a DA66 Parser and parse the da66 files found. */ 960 /** Create a DA66 Parser and parse the da66 files found. */
916 // TODO this is a copy of parsePRFs, extract interfaces (e.g. CrossSectionParser). 961 // TODO this is a copy of parsePRFs, extract interfaces (e.g. CrossSectionParser).
1038 } 1083 }
1039 } 1084 }
1040 } 1085 }
1041 1086
1042 public void storeCrossSections() { 1087 public void storeCrossSections() {
1043 if (!Config.INSTANCE.skipPRFs() || !Config.INSTANCE.skipDA66s()) { 1088 if (!Config.INSTANCE.skipPRFs() || !Config.INSTANCE.skipDA66s() || !Config.INSTANCE.skipDA50s() || !Config.INSTANCE.skipW80s()) {
1044 log.info("store cross sections"); 1089 log.info("store cross sections");
1045 getPeer(); 1090 getPeer();
1046 for (ImportCrossSection crossSection: crossSections) { 1091 for (ImportCrossSection crossSection: crossSections) {
1047 crossSection.storeDependencies(); 1092 crossSection.storeDependencies();
1048 } 1093 }

http://dive4elements.wald.intevation.org