% DisplayableItemFactory - Factory for creating different types of displayable items.

% Copyright 2012-2020 The MathWorks, Inc.

classdef (Hidden) DisplayableItemFactory < parallel.internal.display.DisplayableItemBaseFactory
    methods
        function obj = DisplayableItemFactory(displayHelper)
            obj = obj@parallel.internal.display.DisplayableItemBaseFactory(displayHelper);
        end
    end
    methods
        
        function dateTimeItem = createDateTimeItem(obj, value)
            dateTimeItem = parallel.internal.display.DateTime(obj.DisplayHelper, value);
        end
        
        function autoAttachedFilesItem = createAutoAttachedFilesItem(obj, job)
            autoAttachedFilesItem = parallel.internal.display.AutoAttachedFiles(obj.DisplayHelper, job);
        end

        function attachedFilesItem = createAttachedFilesItem(obj, list, job)
            attachedFilesItem = parallel.internal.display.AttachedFiles(obj.DisplayHelper, list, job);
        end
        
        function poolAttachedFilesItem = createPoolAttachedFilesItem(obj, list, aPool)
            poolAttachedFilesItem = parallel.internal.display.PoolAttachedFiles(obj.DisplayHelper, list, aPool);
        end
        
        function additionalPathsItem = createAdditionalPathsItem(obj, list, job)
            additionalPathsItem = parallel.internal.display.AdditionalPaths(obj.DisplayHelper, list, job);
        end
        
        function wrappedTextItem = createWrappedTextItem(obj, value)
            wrappedTextItem = parallel.internal.display.WrappedText(obj.DisplayHelper, value);
        end
        
        function jobStorageStructItem = createJobStorageStructItem(obj, value)
            jobStorageStructItem = parallel.internal.display.JobStorageStruct(obj.DisplayHelper, value);
        end
        
        function linkItem = createLinkItem(obj, displayValue, linkObj) 
            linkItem = parallel.internal.display.Link(obj.DisplayHelper, displayValue, linkObj);
        end
        
        function taskErrorItem = createTaskErrorItem(obj, error, parent)
            taskErrorItem = parallel.internal.display.TaskError(obj.DisplayHelper, error, parent);
        end
        
        function taskWarningsItem = createTaskWarningsItem(obj, warnings, task)
            taskWarningsItem = parallel.internal.display.TaskWarnings(obj.DisplayHelper, warnings, task);
        end
        
        function environmentVariablesItem = createEnvironmentVariablesItem(obj, list, job)
            environmentVariablesItem = parallel.internal.display.EnvironmentVariables(obj.DisplayHelper, list, job);
        end
        
        function schedulerIDsItem = createSchedulerIDsItem(obj, list, job)
            schedulerIDsItem = parallel.internal.display.SchedulerIDs(obj.DisplayHelper, list, job);
        end
        
        % Separators do not have a typical display value. Instead, they
        % separate property groups.
        function separatorItem = createSeparator(obj)
            separatorItem = parallel.internal.display.Separator(obj.DisplayHelper);
        end
    end
end
