classdef MainFunction < target.Object

    properties (Dependent)
        Arguments string {mustBeVector(Arguments, "allow-all-empties")}
        BuildDependencies target.BuildDependencies {mustBeScalarOrEmpty}
        IncludeFiles string {mustBeVector(IncludeFiles, "allow-all-empties")}
        InitializationCode (1, 1) string
        SystemIncludeFiles string {mustBeVector(SystemIncludeFiles, "allow-all-empties")}
        TerminationCode (1, 1) string
    end

    methods

        function value = get.Arguments(this)
            value = this.InnerInstance.Arguments;
        end

        function set.Arguments(this, value)
            this.InnerInstance.Arguments = value;
        end

        function value = get.BuildDependencies(this)
            value = this.wrapValue(this.InnerInstance.BuildDependencies);
        end

        function set.BuildDependencies(this, value)
            this.InnerInstance.BuildDependencies = this.unwrapValue(value, this.InnerInstance.BuildDependencies);
        end

        function value = get.IncludeFiles(this)
            value = this.InnerInstance.IncludeFiles;
        end

        function set.IncludeFiles(this, value)
            this.InnerInstance.IncludeFiles = value;
        end

        function value = get.InitializationCode(this)
            value = this.InnerInstance.InitializationCode;
        end

        function set.InitializationCode(this, value)
            this.InnerInstance.InitializationCode = value;
        end

        function value = get.SystemIncludeFiles(this)
            value = this.InnerInstance.SystemIncludeFiles;
        end

        function set.SystemIncludeFiles(this, value)
            this.InnerInstance.SystemIncludeFiles = value;
        end

        function value = get.TerminationCode(this)
            value = this.InnerInstance.TerminationCode;
        end

        function set.TerminationCode(this, value)
            this.InnerInstance.TerminationCode = value;
        end
    end

    methods (Static, Access = protected)

        function name = getQualifiedName()
            name = "target.MainFunction";
        end

        function name = getQualifiedInnerName()
            name = "target.internal.MainFunction";
        end
    end
end

%   Copyright 2021-2022 The MathWorks, Inc.