code: @Override
    public List<Record> signalEndTrack(int newDepth, long timeEnded) {
      List<Record> willReturn = new ArrayList<Record>();
      //(get state info)
      boolean trackWasNonempty = current.somethingPrinted;
      //(flush)
      flush(current,willReturn);
      current = stack.pop();
      //(update seen counts)
      if(trackWasNonempty){
        if(current.trackCountPending == PendingType.PRINTING){
          //((track was in fact printed))
          current.timesPrinted += 1;
        }
        if(current.trackCountPending != PendingType.NONE){
          //((track was in fact seen))
          current.timesSeen += 1;
        }
        //((track is nonempty))
        current.somethingPrinted = true;
      }
      //(update this track)
      current.trackCountPending = PendingType.NONE;
      return willReturn;
    }
docs: {@inheritDoc}