public void reset() {

    if (!markEngaged) return;

    markEngaged = false;
    inputStream.restoreInternalState(streamMemento);
    streamMemento = null;
  }
 public void mark(RestorableInputStream is) {
   markEngaged = true;
   inputStream = is;
   streamMemento = inputStream.createStreamMemento();
 }