GracePeriodUtil.java

package de.dlr.shepard.security;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class GracePeriodUtil {

	private final Map<String, Date> lastSeen;
	private final int period;

	public GracePeriodUtil(int period) {
		this.period = period;
		lastSeen = new HashMap<>();
	}

	public boolean elementIsKnown(String key) {
		if (!lastSeen.containsKey(key))
			return false;

		var threshold = new Date(System.currentTimeMillis() - period);
		return lastSeen.get(key).after(threshold);
	}

	public void elementSeen(String key) {
		lastSeen.put(key, new Date());
	}

}