indexing
	description: "Command history entries storing a single command"
	author: "Patrick Schoenbach"

class interface
	SINGLE_COMMAND_ENTRY

create 

	make (instance: COMMAND_INSTANCE)
		require
			instance_exists: instance /= void
		ensure
			instance_set: command_instance = instance

feature -- Status report

	is_executed: BOOLEAN
			-- Has entry been executed?

	redoable_item: BOOLEAN
			-- Is there a redoable item?
			-- (from COMMAND_HISTORY_ENTRY)

	undoable_item: BOOLEAN
			-- Is there an undoable item?
			-- (from COMMAND_HISTORY_ENTRY)
	
feature -- Basic operations

	redo
			-- Redo command.

	undo
			-- Undo command.
	
invariant

		-- from GENERAL
	reflexive_equality: standard_is_equal (Current);
	reflexive_conformance: conforms_to (Current);
	instance_exists: command_instance /= void;

end -- class SINGLE_COMMAND_ENTRY