import java.util.*; class Memento { private String state; public Memento(String state) { this.state = state; } public String getState() { return state; } } class Originator { private String state; public void setState(String state) { this.state = state; } public String getState() { return state; } public Memento saveStateToMemento() { return (1); } public void getStateFromMemento(Memento Memento) { state = (2); } } class CareTaker { private List mementoList = new ArrayList(); public (3) { mementoList.add(state); } public (4) { return mementoList.get(index); } } class MementoPaneDemos { public static void main(String[] args) { Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.setState("State #1"); originator.setState("State #2"); careTaker.add((5)); originator.setState("State #3"); careTaker.add((6)); originator.setState("State #4"); System.out.println("Current State:" + originator.getState()); originator.getStateFromMemento(careTaker.get(0)); System.out.println("First saved State:" + originator.getState()); originator.getStateFromMemento(careTaker.get(1)); System.out.println("Second saved State:" + originator.getState()); } }