You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: ParforProgress2.m
    path of file: ./repos/CS_MoCo_LAB/reconstruction/matlab/CS_LAB_matlab/utils/general/ParforProgress2
    
    the code of the file until where you have to start completion: %
% do NOT use this object by itself!
% use ParforProgressStarter2() instead.
% 
% most of the code here is from:
% http://www.mathworks.com/matlabcentral/fileexchange/24594-parfor-progress-monitor
%
% ParforProgress2 - M object to make 'ParforProgressClient2' and 
% 'ParforProgressServer2' objects easier to use. Create one of these on the 
% client outside your PARFOR loop with a name for the window. Pass the 
% object to the PARFOR loop, and have the workers call "increment" at the 
% end of each iteration. This sends a notification
    
function o = ParforProgress2(s, n, percentage, do_debug, use_gui)
        % ParforProgress Build a Parfor Progress Monitor
        % Use the syntax: ParforProgress( 'Window Title', N, percentage, do_debug, use_gui )
        % where N is the number of iterations in the PARFOR loop
        
            % initalize client
            if nargin == 1 && iscell(s)
                % "Private" constructor used for the clients
                o.JavaBit   = ParforProgressClient2.createClient(s{1}, s{2}, s{4});
                o.Port      = [];
             
            % initialize server
            elseif (nargin == 5 || nargin == 4 || nargin == 3 || nargin == 2)
                
                if nargin < 5
                    use_gui = 1;
                end