function getparam(this, hCLI)
% GETPARAM Get the component specific CLI properties

% Author(s): J. Sun
% Copyright 2008-2023 The MathWorks, Inc.

% directly sourced widgets

%'CoeffMultipliers'
%'FIRAdderStyle'
%'OptimizeForHDL'

if this.AddPipelineRegisters
hCLI.AddPipelineRegisters = 'on';
else
hCLI.AddPipelineRegisters = 'off';
end

if getEnableState(this, 'CoefficientSource')
if strcmpi(this.CoefficientSource, 'Processor interface')
hCLI.CoefficientSource = 'ProcessorInterface';
else
hCLI.CoefficientSource = 'Internal';
end
else
hCLI.CoefficientSource = 'Internal'; % default
end

if getEnableState(this, 'CoefficientMemory')
switch this.CoefficientMemory
case 'Registers'
hCLI.CoefficientMemory = 'Registers';
case 'Dual port RAMs'
hCLI.CoefficientMemory = 'DualportRAMs';
case 'Single port RAMs'
hCLI.CoefficientMemory = 'SingleportRAMs';
end

end
switch this.Architecture
case 'Fully parallel'
% set the default values for all the architecture related
% properties
hCLI.Foldingfactor = 1; %set it to the default value
hCLI.SerialPartition = -1; %set it to the default value
hCLI.DALUTPartition = -1;
hCLI.DARadix = 2;
hCLI.ReuseAccum = 'off';

case 'Partly serial'
if fdhdlcoderui.issupportedsos(this.filterobj)
hCLI.Foldingfactor = str2num(this.Foldingfactor); %#ok<ST2NM>
hCLI.SerialPartition = -1; %set it to the default value
else
hCLI.SerialPartition = str2num(this.SerialPartition); %#ok
hCLI.Foldingfactor = 1; %set it to the default value
end
% set the default values for other architectures
hCLI.DALUTPartition = -1;
hCLI.DARadix = 2;
hCLI.ReuseAccum = 'off';

case 'Fully serial'
if fdhdlcoderui.issupportedsos(this.filterobj)
hCLI.Foldingfactor = str2num(this.FSFoldingFactor); %#ok<ST2NM>
hCLI.SerialPartition = -1; %set it to the default value
else
hCLI.SerialPartition = str2num(this.FSSerialPartition); %#ok
hCLI.Foldingfactor = 1; %set it to the default value
end
% set the default values for other architectures
hCLI.DALUTPartition = -1;
hCLI.DARadix = 2;
hCLI.ReuseAccum = 'off';
case 'Cascade serial'
hCLI.ReuseAccum = 'on';
hCLI.SerialPartition = str2num(this.CascadeSerialPartition); %#ok
% set the default values for other architectures
hCLI.Foldingfactor = 1; %set it to the default value
hCLI.DALUTPartition = -1;
hCLI.DARadix = 2;
case 'Distributed arithmetic (DA)'
if getEnableState(this, 'LUTPartition')
hCLI.DALUTPartition = str2num(this.LUTPartitionValue); %#ok
end
if getEnableState(this, 'DARadix')
hCLI.DARadix = str2num(this.DARadixValue); %#ok
end
hCLI.Foldingfactor = 1; %set it to the default value
hCLI.SerialPartition = -1; %set it to the default value
hCLI.ReuseAccum = 'off';
end
% [EOF]

% LocalWords: Dualport Singleport