classdef APIImplementation < target.Object

    properties (Dependent)
        API target.API {mustBeScalarOrEmpty}
        BuildDependencies target.ImplementationDependencies {mustBeScalarOrEmpty}
        MainFunction target.MainFunction {mustBeScalarOrEmpty}
    end

    methods

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

        function set.API(this, value)
            this.InnerInstance.API = this.unwrapValue(value, this.InnerInstance.API);
        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.MainFunction(this)
            value = this.wrapValue(this.InnerInstance.MainFunction);
        end

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

    methods (Static, Access = protected)

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

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

%   Copyright 2021-2022 The MathWorks, Inc.