Class StoredReports

java.lang.Object
io.leandev.appfuse.report.StoredReports

public final class StoredReports extends Object

把 ReportArtifact 保存到 FileStorage

StoredReport stored = StoredReports.save(fileStorage, partition, renderer.render(document, options));

partition 由應用決定:tenant 模組傳目前 tenant ID,tenantless 模組傳應用常數或依資料範圍設計的值。 保存期限由應用以 StoredReport.storedAt() 計算並自行刪除;框架不排程刪除。

Since:
4.0.0
  • Method Details

    • save

      public static StoredReport save(FileStorage storage, String partition, ReportArtifact artifact)
      以系統時鐘記錄保存時間;見 save(FileStorage, String, ReportArtifact, Clock)
    • save

      public static StoredReport save(FileStorage storage, String partition, ReportArtifact artifact, Clock clock)

      保存並關閉 artifact

      接手 artifact 的 ownership:成功或失敗都會關閉。寫入成功即回傳結果;之後的清理失敗(讀取串流的關閉、 暫存檔刪除)只記錄 WARN,不影響回傳。寫入失敗時儲存的例外為主例外,不回傳結果;串流關閉的錯誤以 suppressed 附上。

      Parameters:
      storage - 檔案儲存
      partition - 儲存分區鍵(不可為 null)
      artifact - 產物;此方法負責關閉
      clock - 保存時間的時鐘(與 RenderOptions.clock 無關)
      Returns:
      保存結果