Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/utils/UniqueDateFormatter.java @ 9295:385b52ccde23
Work on U-Info salix line calculation and chart (no scenario case)
author | mschaefer |
---|---|
date | Tue, 24 Jul 2018 18:51:47 +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); } }