docs: public synchronized ListenableFuture<?> add(Page page)
      {
          checkState(!isFull(), "PageBuffer is full!");
          pages.offer(page);
          if (isFull()) {
              if (settableFuture == null) {
                  settableFuture = SettableFuture.create();
              }
              return settableFuture;
          }
          return NOT_FULL;
      }