public void jumpTo(CommandInfo info) throws CommandExecutionException {
		if(info.isBase()) {
			int size = this.pastOperations.size();
			for(int i = size - 1; i >= 0; i--) {
				T cmd = this.pastOperations.remove(i);
				this.historyStrategy.undo(cmd);
				this.commandInformation.get(cmd).setFuture(true);
				this.futureOperations.add(0, cmd);
			}
		} else if(info.isFuture()) {
			T cmd;
			do {
				cmd = this.futureOperations.remove(0);
				this.historyStrategy.redo(cmd);
				this.commandInformation.get(cmd).setFuture(false);
				this.pastOperations.add(cmd);
			} while(!info.acceptsCommand(cmd));
		} else {
			T cmd = this.pastOperations.get(this.pastOperations.size() - 1);
			while(!info.acceptsCommand(cmd)) {
				cmd = this.pastOperations.remove(this.pastOperations.size() - 1);
				this.historyStrategy.undo(cmd);
				this.commandInformation.get(cmd).setFuture(true);
				this.futureOperations.add(0, cmd);
				cmd = this.pastOperations.get(this.pastOperations.size() - 1);
			}
		}
		this.eventBus.post(new HistoryCommandReplayedEvent<>(this));
	}