package com.kspichale.storm_demo.counter; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.joda.time.DateTime; public class CounterMap implements Serializable { private final Map<String, RollingCounter> counters = new HashMap<String, RollingCounter>(); public long increment(final String url, final Date date) { final RollingCounter counter = getCounter(url); counter.increment(new DateTime(date.getTime())); return counter.getSum(); } private RollingCounter getCounter(final String url) { final RollingCounter counter = counters.get(url); if (counter != null) { return counter; } final RollingCounter newCounter = new RollingCounter(); counters.put(url, newCounter); return newCounter; } }