function schema
%SCHEMA   Define the abstracthdlrpt class.

%   Copyright 2018-2023 The MathWorks, Inc.
%     

% store persistent variables
mlock;

pk = findpackage('hdlcoderui');
parentcls = findclass(pk, 'abstracthdlcomps');
c  = schema.class(pk, 'abstracthdlrpt',parentcls);

%
% Methods
%
m = schema.method(c, 'getDialogSchema');
s = m.Signature;
s.varargin = 'off';
s.InputTypes = {'handle', 'string'};
s.OutputTypes = {'mxArray'};

m = schema.method(c, 'getTabDialogSchema');
s = m.Signature;
s.varargin = 'off';
s.InputTypes = {'handle', 'string', 'mxArray'};
s.OutputTypes = {'mxArray'};

p = schema.prop(c,'Traceability','bool');
p.AccessFlags.PublicSet = 'on';
p.AccessFlags.PublicGet = 'on';
set(p,'FactoryValue', false);

if isempty(findtype('HDLTraceabilityStyle'))
    schema.EnumType( ...
        'HDLTraceabilityStyle', {'Line Level', 'Comment Based'});
end

p = schema.prop(c,'TraceabilityStyle','HDLTraceabilityStyle'); 
p.AccessFlags.PublicSet = 'off';
p.AccessFlags.PublicGet = 'off';
set(p, 'FactoryValue', 'Line Level'); 

p = schema.prop(c,'ResourceReport','bool');
p.AccessFlags.PublicSet = 'on';
p.AccessFlags.PublicGet = 'on';
set(p,'FactoryValue', false);

p = schema.prop(c,'CriticalPathEstimation','bool');
p.AccessFlags.PublicSet = 'on';
p.AccessFlags.PublicGet = 'on';
set(p,'FactoryValue', false);

p = schema.prop(c,'OptimizationReport','bool');
p.AccessFlags.PublicSet = 'on';
p.AccessFlags.PublicGet = 'on';
set(p,'FactoryValue', false);

p = schema.prop(c,'HDLGenerateWebview','bool');
p.AccessFlags.PublicSet = 'on';
p.AccessFlags.PublicGet = 'on';
set(p,'FactoryValue', false);

% [EOF]

% LocalWords: abstracthdlrpt
