public List apply()

in src/main/java/com/google/cloud/solutions/bqremoteencryptionfn/fns/dlp/DlpRequestBatchExecutor.java [191:219]


    public List<Table> apply(List<String> rows) {
      var requestTableBuilder = ImmutableList.<Table>builder();

      var accTable = newTable();

      for (var stringRow : rows) {
        var tableRow = convertStringToRow(stringRow);

        if (tableRow.getSerializedSize() >= requestMaxBytes) {
          throw new RuntimeException(
              String.format(
                  "Single Row size greater than DLP limit. Found %s bytes",
                  tableRow.getSerializedSize()));
        }

        if (accTable.getRowsCount() + 1 > requestCellCount
            || accTable.getSerializedSize() + tableRow.getSerializedSize() >= requestMaxBytes) {

          requestTableBuilder.add(accTable);
          accTable = newTable();
        }

        accTable = accTable.toBuilder().addRows(tableRow).build();
      }

      var requestTables = requestTableBuilder.add(accTable).build();
      logger.atInfo().log("Created %s tables from %s rows", requestTables.size(), rows.size());
      return requestTables;
    }