Mercurial > dive4elements > river
diff backend/src/main/java/org/dive4elements/river/importer/parsers/MorphologicalWidthParser.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 | 5e38e2924c07 |
children | c43d8c1a4455 |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/MorphologicalWidthParser.java Sun Apr 08 18:09:32 2018 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/MorphologicalWidthParser.java Mon Apr 09 09:07:00 2018 +0200 @@ -9,32 +9,29 @@ package org.dive4elements.river.importer.parsers; import java.math.BigDecimal; - import java.text.NumberFormat; -import java.text.ParseException; - import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.log4j.Logger; - import org.dive4elements.river.importer.ImportMorphWidth; import org.dive4elements.river.importer.ImportMorphWidthValue; import org.dive4elements.river.importer.ImportUnit; +import org.dive4elements.river.importer.common.AbstractParser; public class MorphologicalWidthParser extends LineParser { private static final Logger log = - Logger.getLogger(MorphologicalWidthParser.class); + Logger.getLogger(MorphologicalWidthParser.class); public static final NumberFormat nf = NumberFormat.getInstance( - DEFAULT_LOCALE); + DEFAULT_LOCALE); public static final Pattern META_UNIT = - Pattern.compile("^Einheit: \\[(.*)\\].*"); + Pattern.compile("^Einheit: \\[(.*)\\].*"); protected List<ImportMorphWidth> morphWidths; @@ -42,26 +39,26 @@ public MorphologicalWidthParser() { - morphWidths = new ArrayList<ImportMorphWidth>(); + this.morphWidths = new ArrayList<>(); } @Override protected void reset() { - current = new ImportMorphWidth(); + this.current = new ImportMorphWidth(); } @Override protected void finish() { - if (current != null) { - morphWidths.add(current); + if (this.current != null) { + this.morphWidths.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)); } @@ -71,7 +68,7 @@ } - protected void handleMetaLine(String line) { + protected void handleMetaLine(final String line) { if (handleMetaUnit(line)) { return; } @@ -81,13 +78,13 @@ } - protected boolean handleMetaUnit(String line) { - Matcher m = META_UNIT.matcher(line); + protected boolean handleMetaUnit(final String line) { + final Matcher m = META_UNIT.matcher(line); if (m.matches()) { - String unit = m.group(1); + final String unit = m.group(1); - current.setUnit(new ImportUnit(unit)); + this.current.setUnit(new ImportUnit(unit)); return true; } @@ -96,8 +93,8 @@ } - protected void handleDataLine(String line) { - String[] vals = line.split(SEPERATOR_CHAR); + protected void handleDataLine(final String line) { + final String[] vals = line.split(SEPERATOR_CHAR); if (vals == null || vals.length < 2) { log.warn("MWP: skip invalid data line: '" + line + "'"); @@ -105,25 +102,25 @@ } try { - BigDecimal km = new BigDecimal(nf.parse(vals[0]).doubleValue()); - BigDecimal width = new BigDecimal(nf.parse(vals[1]).doubleValue()); - - String desc = vals.length > 2 ? vals[2] : null; + final BigDecimal km = AbstractParser.parseDecimal(vals[0]); + final BigDecimal width = AbstractParser.parseDecimal(vals[1]); - current.addValue(new ImportMorphWidthValue( - km, - width, - desc - )); + final String desc = vals.length > 2 ? vals[2] : null; + + this.current.addValue(new ImportMorphWidthValue( + km, + width, + desc + )); } - catch (ParseException pe) { + catch (final NumberFormatException pe) { log.warn("MWP: unparseable number in data row: " + line); } } public List<ImportMorphWidth> getMorphologicalWidths() { - return morphWidths; + return this.morphWidths; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :