Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/DateUniqueMaker.java @ 7300:83bb52fa0c32
(issue1529) Be more tolerant in the fitting.
The invalid value warning is removed because invalid data
is expected there when datapoints are not valid for this KM
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 11 Oct 2013 18:40:33 +0200 |
parents | 2d96d8240e3e |
children | a805211690f7 |
line wrap: on
line source
package org.dive4elements.river.artifacts.model.fixings; import java.util.Date; import gnu.trove.TIntObjectHashMap; import gnu.trove.TLongHashSet; public class DateUniqueMaker { private TLongHashSet times; private TIntObjectHashMap already; public DateUniqueMaker() { times = new TLongHashSet(); already = new TIntObjectHashMap(); } public <T extends QWI> void makeUnique(T t) { // Map same index to same new value if (already.containsKey(t.index)) { t.date = (Date)already.get(t.index); return; } long time = t.date.getTime(); if (!times.add(time)) { // same found before do { time += 30L*1000L; // Add 30secs } while (!times.add(time)); Date newDate = new Date(time); already.put(t.index, newDate); // Write back modified time. t.date = newDate; } else { // register as seen. already.put(t.index, t.date); } } }