Class ReportStatusManager

java.lang.Object
com.inductiveautomation.reporting.gateway.ReportStatusManager

public class ReportStatusManager extends Object
Filename: ReportStatusManager.java Created on Apr 02, 2015 Author: Kathy Applebaum Copyright Inductive Automation 2015 Project: Reporting

Keeps track of what reports are currently executing and the last execution time for any report executed since the Gateway last started.

  • Constructor Details

    • ReportStatusManager

      public ReportStatusManager(GatewayContext context)
  • Method Details

    • getReportExecutionContext

      public ReportExecutionContext getReportExecutionContext(String projectName, String reportPath, boolean isSampleData)
    • getCurrentReportContexts

      public List<ReportExecutionContext> getCurrentReportContexts()
    • getCurrentReportContextsForProject

      public List<ReportExecutionContext> getCurrentReportContextsForProject(String projectName)
    • getLastExecution

      public Date getLastExecution(String projectName, String reportPath)
      Returns the start time of the last finished execution for this report.
    • getLastScheduledExecution

      public Date getLastScheduledExecution(String projectName, String reportPath)
      Returns the start time of the last finished scheduled execution for this report.
    • getLastExecutionDuration

      public long getLastExecutionDuration(String projectName, String reportPath)
      Returns:
      Difference between start and end time in millis. Returns 0 if no last run date since gateway restart.
    • finish

      public void finish(@Nonnull ReportExecutionContext reportExecutionContext)
      Call this when report execution is finished to save last execution time and remove the report from the current execution map.
    • getStatusList

      @Nonnull public List<ReportStatusWatcher> getStatusList()
      Used by ReportStatusView to populate the status page.
      Returns:
      List of ReportStatusWatcher objects for reports currently executing reports
    • cancel

      public void cancel(UUID uuid)
    • getLastScheduledRuns

      public List<ReportStatusWatcher> getLastScheduledRuns()
    • getNextScheduledRun

      @Nullable public ReportSchedule getNextScheduledRun(String projectName, @Nonnull String reportPath)
      Returns the ReportSchedule that should execute next.
      Returns:
      Next ReportSchedule to execute for this path/project, or null if no reports scheduled.
    • getScheduledReportCount

      public int getScheduledReportCount()
      Used by the status page to determine if blank state page is shown.
      Returns:
      count of number of projects with scheduled reports
    • isScheduledReportsEmpty

      public boolean isScheduledReportsEmpty()
    • getProjectsWithSchedules

      @Nonnull public Collection<String> getProjectsWithSchedules()
      Gets a list of project ids with scheduled reports.
      Returns:
      List of project ids, or empty list if none exist in our map.
    • getPathsWithSchedules

      @Nonnull public List<String> getPathsWithSchedules(@Nullable String projectName)
      Gets a list of the report paths for a particular project that have reportSchedules in our map. Includes paths with schedules that are inactive.
      Returns:
      List of report paths, or empty list if none exist.
    • getActiveScheduledReportCount

      public long getActiveScheduledReportCount(String projectName)
      Used by ReportOverviewContributor. We want to know how many reports have at least one schedule that could be executed. This means we need to eliminate reports that are in a disabled project or that have no enabled schedules.
      Parameters:
      projectName - Nullable
      Returns:
      Count of how many reports in this project have at least one enabled schedule.
    • setScheduledRuns

      public void setScheduledRuns(@Nonnull ProjectResource projectResource)
      Called to add new schedules
      Parameters:
      projectResource - Not null.
    • removeScheduledRuns

      public void removeScheduledRuns(String projectName)
      Removes all scheduled run entries from scheduledExecutionsByProject and resourceIdToReportPath for this project. Called when a project is deleted.
    • removeScheduledRuns

      public void removeScheduledRuns(@Nonnull ProjectResourceId id)