classdef RunStatusStrategy  < handle
    %RUNSTATUSSTRATEGY parent class of all concrete workflow run status strategies
    
    % Copyright 2020 The MathWorks, Inc.
    
    properties(SetAccess = protected)
        CurrentWorkflowID
    end
    
    methods(Sealed)
        function allRunStatus = getAllRunStatus(this, allRawReports)
            
            allRunStatus = this.getAllRunStatusLocal(allRawReports);
            
            % remove all empty run status
            allRunStatus = allRunStatus(~cellfun(@isempty,allRunStatus));
        end
        
        function setCurrentWorkflowID(this, currentWorkflowID)
            this.CurrentWorkflowID = currentWorkflowID;
        end
    end
    
    methods(Abstract, Access = {?fxptui.internal.runstatus.RunStatusStrategy})
        getAllRunStatusLocal(this, allRawReports);
    end
end

