public void startArray() {
   recorder.record("startArray");
   super.startArray();
 }
 public void finishArray() {
   recorder.record("finishArray");
   super.finishArray();
 }
 public void direct(Object value) {
   recorder.record("direct", value);
   super.direct(value);
 }
 public void string(String value) {
   recorder.record("string", value);
   super.string(value);
 }
 public void number(Number value) {
   recorder.record("number", value);
   super.number(value);
 }
 public void finish() {
   recorder.record("finish");
 }
 public void start(int start) {
   recorder.record("start", start);
 }