package code4;
public class TestPersistableObject implements PersistableObject {

    private static final String PERSISTOR_TYPE = "test";

    private String infoString;

    public TestPersistableObject(String info) {
	infoString = info;
    }

    private String getInfoString() {
	return infoString;
    }

    private void setInfoString(String string) {
	infoString = string;
    }

    public int save(PersistanceMediator mediator) {
	Memento memento = new Memento();
	return memento.setState(mediator);
    }

    public void load(PersistanceMediator mediator, int id) {
	Memento memento = new Memento();
	memento.getState(mediator, id);
    }
	
    class Memento {
	private int setState(PersistanceMediator mediator) {
	    return mediator.doSave(PERSISTOR_TYPE, getInfoString());
	}

	private void getState(PersistanceMediator mediator, int id) {
	    setInfoString(mediator.doLoad(PERSISTOR_TYPE, id));
	}
    }
	    
}
