view src/org/prevayler/implementation/ClockRecoveryCommand.java @ 27:511648fa4d64 Version 2.1

Version to 2.1
author Dan Creswell <dan.creswell@gmail.com>
date Mon, 04 Jan 2010 13:00:40 +0000
parents 3dc0c5604566
children
line wrap: on
line source

package org.prevayler.implementation;

import org.prevayler.*;

import java.io.Serializable;

import java.util.Date;

/**
   A command for executing another command at a specific moment in time.
*/
class ClockRecoveryCommand implements Command {
    static final long serialVersionUID = 4156866783673937422L;

	private Command command;
	private long millis;

	public ClockRecoveryCommand(Command command, Date date) {
		this.command = command;
		this.millis = date.getTime();
	}

	public Serializable execute(PrevalentSystem system) throws Exception {
		((SystemClock)system.clock()).recover(millis);
		return command.execute(system);
	}

    public String toString() {
        return millis + ":" + command;
    }

    public long getMillis() {
        return millis;
    }
}