Class StreamingBandFeed

java.lang.Object
io.jmix.reports.yarg.formatters.impl.streaming.StreamingBandFeed

public class StreamingBandFeed extends Object
One-shot supply of the streaming ("hot") band's rows for the streaming XLSX formatter. Each source row map is wrapped into a transient BandData parented by the root band but NEVER attached to it, so rendered rows become garbage as soon as the formatter moves on. When putEmptyRowIfNoDataSelected is on, an empty source yields exactly one empty row, mirroring the extractor's behavior.
  • Field Details

    • bandName

      protected final String bandName
    • rows

      protected final Iterator<Map<String,Object>> rows
    • rootBand

      protected final BandData rootBand
    • putEmptyRowIfNoDataSelected

      protected final boolean putEmptyRowIfNoDataSelected
    • consumed

      protected boolean consumed
    • firstRow

      protected @Nullable BandData firstRow
      A detached plain-map copy of the first emitted row, retained (O(1) memory) for output file name resolution after the render.
  • Constructor Details

  • Method Details

    • getBandName

      public String getBandName()
    • iterator

      public Iterator<BandData> iterator()
    • getFirstRow

      public @Nullable BandData getFirstRow()
      The first emitted row, or null when nothing was emitted or the feed was not consumed yet.
    • wrap

      protected BandData wrap(Map<String,Object> row)