package domain; import java.io.Serializable; public class HitoriGameTimer implements Serializable { private static final long serialVersionUID = 1L; private transient long startTime; private long elapsedTime; private boolean isPaused; public HitoriGameTimer() { this.startTime = 0; this.elapsedTime = 0; this.isPaused = false; } public void startTimer() { if (isPaused || startTime == 0) { startTime = System.currentTimeMillis(); isPaused = false; } } public void pauseTimer() { if (!isPaused && startTime > 0) { elapsedTime += System.currentTimeMillis() - startTime; startTime = 0; isPaused = true; } } public void stopTimer() { if (!isPaused && startTime > 0) { elapsedTime += System.currentTimeMillis() - startTime; startTime = 0; } } public void resetTimer() { startTime = 0; elapsedTime = 0; isPaused = false; } public long getElapsedTimeInSeconds() { if (isPaused || startTime == 0) { return elapsedTime / 1000; } return (elapsedTime + System.currentTimeMillis() - startTime) / 1000; } public boolean isPaused() { return isPaused; } }