Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/sinfo/parsers/TkhParser.java @ 9010:dcbdff96d1a8
Tkh import with day instead of year
author | mschaefer |
---|---|
date | Wed, 18 Apr 2018 07:42:06 +0200 |
parents | ae76f618d990 |
children | 1f63e9d3b0ec |
comparison
equal
deleted
inserted
replaced
9009:6fd0f20b58aa | 9010:dcbdff96d1a8 |
---|---|
13 import java.io.File; | 13 import java.io.File; |
14 import java.io.FileInputStream; | 14 import java.io.FileInputStream; |
15 import java.io.IOException; | 15 import java.io.IOException; |
16 import java.io.InputStreamReader; | 16 import java.io.InputStreamReader; |
17 import java.io.LineNumberReader; | 17 import java.io.LineNumberReader; |
18 import java.text.DateFormat; | |
19 import java.text.SimpleDateFormat; | |
18 import java.util.ArrayList; | 20 import java.util.ArrayList; |
21 import java.util.Date; | |
19 import java.util.List; | 22 import java.util.List; |
20 import java.util.regex.Matcher; | 23 import java.util.regex.Matcher; |
21 import java.util.regex.Pattern; | 24 import java.util.regex.Pattern; |
22 | 25 |
23 import org.apache.log4j.Logger; | 26 import org.apache.log4j.Logger; |
41 | 44 |
42 /***** FIELDS *****/ | 45 /***** FIELDS *****/ |
43 | 46 |
44 private static final Logger log = Logger.getLogger(TkhParser.class); | 47 private static final Logger log = Logger.getLogger(TkhParser.class); |
45 | 48 |
46 private static final Pattern META_YEAR = Pattern.compile("^#\\sBezugsjahr:\\s*([12]\\d\\d\\d).*", Pattern.CASE_INSENSITIVE); | 49 private static final Pattern META_DATUM = Pattern.compile("^#\\sDatum:\\s*([^;]*).*", Pattern.CASE_INSENSITIVE); |
47 | 50 |
48 private static final Pattern META_EVALUATOR = Pattern.compile("^#\\sAuswerter:\\s*([^;]*).*", Pattern.CASE_INSENSITIVE); | 51 private static final Pattern META_EVALUATOR = Pattern.compile("^#\\sAuswerter:\\s*([^;]*).*", Pattern.CASE_INSENSITIVE); |
49 | 52 |
50 private static final Pattern META_SOUNDING = Pattern.compile("^#\\sPeilung:\\s*([^;]*).*", Pattern.CASE_INSENSITIVE); | 53 private static final Pattern META_SOUNDING = Pattern.compile("^#\\sPeilung:\\s*([^;]*).*", Pattern.CASE_INSENSITIVE); |
51 | 54 |
52 private static final Pattern META_TYPE = Pattern.compile("^#\\sTyp:\\s*([^;]*).*", Pattern.CASE_INSENSITIVE); | 55 private static final Pattern META_TYPE = Pattern.compile("^#\\sTyp:\\s*([^;]*).*", Pattern.CASE_INSENSITIVE); |
53 | 56 |
54 private static final Pattern COLUMN_TITLE = Pattern.compile("Transportk((.)|(oe))rperh((.)|(oe))he\\s*\\((.+?)\\)\\s*\\[cm\\].*", Pattern.CASE_INSENSITIVE); | 57 private static final Pattern COLUMN_TITLE = Pattern.compile("Transportk((.)|(oe))rperh((.)|(oe))he\\s*\\((.+?)\\)\\s*\\[cm\\].*", Pattern.CASE_INSENSITIVE); |
58 | |
59 private static final DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy"); | |
55 | 60 |
56 private final TkhSeriesImport tkhGroup; | 61 private final TkhSeriesImport tkhGroup; |
57 | 62 |
58 private final List<TkhColumnParser> colParsers; | 63 private final List<TkhColumnParser> colParsers; |
59 | 64 |
134 colParser.parse(); | 139 colParser.parse(); |
135 } | 140 } |
136 | 141 |
137 @Override | 142 @Override |
138 protected boolean handleMetaOther() { | 143 protected boolean handleMetaOther() { |
139 if (handleMetaYear()) | 144 if (handleMetaDay()) |
140 return true; | 145 return true; |
141 else if (handleMetaType()) | 146 else if (handleMetaType()) |
142 return true; | 147 return true; |
143 else if (handleMetaSounding()) | 148 else if (handleMetaSounding()) |
144 return true; | 149 return true; |
146 return true; | 151 return true; |
147 else | 152 else |
148 return false; | 153 return false; |
149 } | 154 } |
150 | 155 |
151 private boolean handleMetaYear() { | 156 private boolean handleMetaDay() { |
152 final Matcher m = META_YEAR.matcher(this.currentLine); | 157 final Matcher m = META_DATUM.matcher(this.currentLine); |
153 if (m.matches()) { | 158 if (m.matches()) { |
154 this.metaPatternsMatched.add(META_YEAR); | 159 Date day = null; |
155 this.tkhGroup.setYear(Integer.parseInt(m.group(1))); | 160 try { |
161 if (!m.group(1).isEmpty()) | |
162 day = dateFormat.parse(m.group(1)); | |
163 } | |
164 catch (final Exception e) { | |
165 logError("Invalid date in line " + this.in.getLineNumber()); | |
166 } | |
167 this.metaPatternsMatched.add(META_DATUM); | |
168 this.tkhGroup.setDay(day); | |
169 if (day == null) | |
170 logWarning("No date specified"); | |
156 return true; | 171 return true; |
157 } | 172 } |
158 return false; | 173 return false; |
159 } | 174 } |
160 | 175 |