# HG changeset patch # User Sascha L. Teichmann # Date 1304432323 0 # Node ID a9e9a8a44d19406372f7f16a781f130819d29e61 # Parent f1fd9cab6a070bc381e3115bd99ed73eb8334329 Parse and store "amtliche Linien" wst files. flys-backend/trunk@1807 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r f1fd9cab6a07 -r a9e9a8a44d19 flys-backend/ChangeLog --- a/flys-backend/ChangeLog Tue May 03 13:50:37 2011 +0000 +++ b/flys-backend/ChangeLog Tue May 03 14:18:43 2011 +0000 @@ -1,3 +1,8 @@ +2011-05-03 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/importer/ImportRiver.java: + Parse and store "amtliche Linien" wst files. + 2011-05-03 Sascha L. Teichmann * src/main/java/de/intevation/flys/importer/ImportRiver.java: diff -r f1fd9cab6a07 -r a9e9a8a44d19 flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java Tue May 03 13:50:37 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java Tue May 03 14:18:43 2011 +0000 @@ -26,6 +26,13 @@ public static final String EXTRA_LONGITUDINALS = "Zus.L\u00e4ngsschnitte"; + public static final String [] OFFICIAL_LINES_FOLDERS = { + "Basisdaten", + "Fixierungen" }; + + public static final String OFFICIAL_LINES = + "Amtl_Linien.wst"; + protected String name; protected File wstFile; @@ -40,13 +47,16 @@ protected List fixations; + protected List officialLines; + protected ImportWst wst; protected River peer; public ImportRiver() { - extraWsts = new ArrayList(); - fixations = new ArrayList(); + extraWsts = new ArrayList(); + fixations = new ArrayList(); + officialLines = new ArrayList(); } public ImportRiver(String name, File wstFile, File bbInfoFile) { @@ -94,6 +104,37 @@ parseWst(); parseExtraWsts(); parseFixations(); + parseOfficialLines(); + } + + public void parseOfficialLines() throws IOException { + log.info("Parse official wst files"); + + File riverDir = wstFile.getParentFile().getParentFile(); + + for (String folder: OFFICIAL_LINES_FOLDERS) { + File dir = FileTools.repair(new File(riverDir, folder)); + + if (!dir.isDirectory() || !dir.canRead()) { + log.info("no directory '" + folder + "' found"); + continue; + } + + File file = FileTools.repair(new File(dir, OFFICIAL_LINES)); + if (!file.isFile() || !file.canRead()) { + log.warn("no official lines wst file found"); + continue; + } + log.debug("Found WST file: " + file); + + WstParser wstParser = new WstParser(); + wstParser.parse(file); + ImportWst iw = wstParser.getWst(); + iw.setKind(3); + iw.setDescription(folder + "/" + iw.getDescription()); + officialLines.add(iw); + } // for all folders + } public void parseFixations() throws IOException { @@ -213,6 +254,7 @@ storeWst(); storeExtraWsts(); storeFixations(); + storeOfficialLines(); } public void storeWst() { @@ -238,6 +280,15 @@ } } + public void storeOfficialLines() { + log.info("store official lines wsts"); + River river = getPeer(); + for (ImportWst wst: officialLines) { + log.debug("name: " + wst.getDescription()); + wst.storeDependencies(river); + } + } + public void storeAnnotations() { River river = getPeer(); for (ImportAnnotation annotation: annotations) {