package de.tud.kom.socom.util.playerstate; import java.sql.SQLException; import java.util.HashMap; import de.tud.kom.socom.database.user.HSQLUserDatabase; import de.tud.kom.socom.util.Logger; import de.tud.kom.socom.util.LoggerFactory; @SuppressWarnings("serial") public class ObservedUIDs extends HashMap<Long, Long> { private static final ObservedUIDs instance = new ObservedUIDs(); private static Logger logger; private ObservedUIDs() { logger = LoggerFactory.getLogger(); } public static ObservedUIDs getInstance() { return instance; } public void put(Long uid) { long now = System.currentTimeMillis(); super.put(uid, now); } public void setOnline(Long uid) { if (!super.containsKey(uid)) { try { HSQLUserDatabase.getInstance().setUserOnline(uid); } catch (SQLException e) { logger.Error(e); } } this.put(uid); } public Long getTime(Long uid) { return super.get(uid); } public void setOffline(Long uid) { super.remove(uid); try { HSQLUserDatabase.getInstance().setUserOffline(uid); } catch (SQLException e) { logger.Error(e); } } }