Mercurial > dive4elements > river
diff backend/src/main/java/org/dive4elements/river/importer/parsers/FlowVelocityMeasurementParser.java @ 8989:2693bfaf503d
Fixed several BigDecimal(double) creations by BigDecimal(String) parsing to avoid unnecessary decimal digits
author | mschaefer |
---|---|
date | Mon, 09 Apr 2018 09:07:00 +0200 |
parents | 4c3ccf2b0304 |
children |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/FlowVelocityMeasurementParser.java Sun Apr 08 18:09:32 2018 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/FlowVelocityMeasurementParser.java Mon Apr 09 09:07:00 2018 +0200 @@ -8,61 +8,58 @@ package org.dive4elements.river.importer.parsers; -import org.dive4elements.river.importer.ImportFlowVelocityMeasurement; -import org.dive4elements.river.importer.ImportFlowVelocityMeasurementValue; - import java.math.BigDecimal; - import java.text.DateFormat; import java.text.NumberFormat; -import java.text.ParseException; import java.text.SimpleDateFormat; - import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; +import org.dive4elements.river.importer.ImportFlowVelocityMeasurement; +import org.dive4elements.river.importer.ImportFlowVelocityMeasurementValue; +import org.dive4elements.river.importer.common.AbstractParser; public class FlowVelocityMeasurementParser extends LineParser { private static final Logger log = - Logger.getLogger(FlowVelocityMeasurementParser.class); + Logger.getLogger(FlowVelocityMeasurementParser.class); private static final NumberFormat nf = - NumberFormat.getInstance(DEFAULT_LOCALE); + NumberFormat.getInstance(DEFAULT_LOCALE); private static final DateFormat df = - new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); - private List<ImportFlowVelocityMeasurement> measurements; + private final List<ImportFlowVelocityMeasurement> measurements; private ImportFlowVelocityMeasurement current; public FlowVelocityMeasurementParser() { - measurements = new ArrayList<ImportFlowVelocityMeasurement>(); + this.measurements = new ArrayList<>(); } public List<ImportFlowVelocityMeasurement> getMeasurements() { - return measurements; + return this.measurements; } @Override protected void reset() { - current = new ImportFlowVelocityMeasurement(); + this.current = new ImportFlowVelocityMeasurement(); } @Override protected void finish() { - current.setDescription(fileName); - measurements.add(current); + this.current.setDescription(this.fileName); + this.measurements.add(this.current); } @Override - protected void handleLine(int lineNum, String line) { + protected void handleLine(final int lineNum, final String line) { if (line.startsWith(START_META_CHAR)) { handleMetaLine(stripMetaLine(line)); } @@ -72,12 +69,12 @@ } - public void handleMetaLine(String line) { + public void handleMetaLine(final String line) { } - public void handleDataLine(String line) { - String[] cols = line.split(SEPERATOR_CHAR); + public void handleDataLine(final String line) { + final String[] cols = line.split(SEPERATOR_CHAR); if (cols.length < 8) { log.warn("skip invalid data line: '" + line + "'"); @@ -85,24 +82,17 @@ } try { - double km = nf.parse(cols[1]).doubleValue(); - double w = nf.parse(cols[5]).doubleValue(); - double q = nf.parse(cols[6]).doubleValue(); - double v = nf.parse(cols[7]).doubleValue(); - - String timestr = cols[3] + " " + cols[4]; - String description = cols.length > 8 ? cols[8] : null; + final BigDecimal km = AbstractParser.parseDecimal(cols[1]); + final BigDecimal w = AbstractParser.parseDecimal(cols[5]); + final BigDecimal q = AbstractParser.parseDecimal(cols[6]); + final BigDecimal v = AbstractParser.parseDecimal(cols[7]); - current.addValue(new ImportFlowVelocityMeasurementValue( - df.parse(timestr), - new BigDecimal(km), - new BigDecimal(w), - new BigDecimal(q), - new BigDecimal(v), - description - )); + final String timestr = cols[3] + " " + cols[4]; + final String description = cols.length > 8 ? cols[8] : null; + + this.current.addValue(new ImportFlowVelocityMeasurementValue(df.parse(timestr), km, w, q, v, description)); } - catch (ParseException pe) { + catch (final Exception pe) { log.warn("Unparseable flow velocity values:", pe); } }