Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/utils/UniqueDateFormatter.java @ 9360:ddcd52d239cd
Outliers in fixation calculation are now shown within the other 'B' event themes and get a separate symbol (triangle).
Removed old outliers theme.
Also consider showpoints property.
Also consider pointsize property.
author | gernotbelger |
---|---|
date | Wed, 01 Aug 2018 17:13:52 +0200 |
parents | 90f66b4fc34d |
children | 0a5239a1e46e |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.utils; import java.text.DateFormat; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; public class UniqueDateFormatter { private static Logger log = Logger.getLogger(UniqueDateFormatter.class); private DateFormat df; private DateFormat lf; private Map<String, int[]> collisions; public UniqueDateFormatter( DateFormat df, DateFormat lf, Collection<Date> dates ) { this.df = df; this.lf = lf; collisions = build(dates); } private Map<String, int []> build(Collection<Date> dates) { Map<String, int []> collisions = new HashMap<String, int[]>(); for (Date d: dates) { String s = df.format(d); int [] count = collisions.get(s); if (count == null) { collisions.put(s, count = new int[1]); } if (++count[0] > 1) { log.debug("date collsion found: " + d); } } return collisions; } public String format(Date date) { String s = df.format(date); int [] count = collisions.get(s); return count == null || count[0] < 2 ? s : lf.format(date); } }