Class ReportStatusManager


  • public class ReportStatusManager
    extends java.lang.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 Detail

      • ReportStatusManager

        public ReportStatusManager​(GatewayContext context)
    • Method Detail

      • getReportExecutionContext

        public ReportExecutionContext getReportExecutionContext​(java.lang.String projectName,
                                                                java.lang.String reportPath,
                                                                boolean isSampleData)
      • getCurrentReportContextsForProject

        public java.util.List<ReportExecutionContext> getCurrentReportContextsForProject​(java.lang.String projectName)
      • getLastExecution

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

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

        public long getLastExecutionDuration​(java.lang.String projectName,
                                             java.lang.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 java.util.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​(java.util.UUID uuid)
      • getNextScheduledRun

        @Nullable
        public ReportSchedule getNextScheduledRun​(java.lang.String projectName,
                                                  @Nonnull
                                                  java.lang.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 java.util.Collection<java.lang.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 java.util.List<java.lang.String> getPathsWithSchedules​(java.lang.String projectName)
        Gets a list of the report paths for a particular project that have reportSchedules in our map.
        Returns:
        List of report paths, or empty list if none exist.
      • setScheduledRuns

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

        public void removeScheduledRuns​(java.lang.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)