Home > classes > @plist > combine.m

combine

PURPOSE ^

COMBINE multiple parameter lists (plist objects) into a single plist.

SYNOPSIS ^

function plo = combine(varargin)

DESCRIPTION ^

 COMBINE multiple parameter lists (plist objects) into a single plist.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: COMBINE multiple parameter lists (plist objects) into a single
              plist. Duplicate parameters are given priority in the order
              in which they appear in the input.

 CALL:        pl = combine(p1, p2, p3);
              pl = combine(p1, [p2 p3], p4)

 EXAMPLES:    >> pl1 = plist(param('A', 1));
              >> pl2 = plist(param('A', 3));
              >> plo = plist(pl1, pl2)

              Then plo will contain a parameter 'A' with value 1.

 VERSION:     $Id: combine.m,v 1.4 2007/07/18 13:58:45 ingo Exp $

 HISTORY:     28-04-2007 M Hewitson
                 Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function plo = combine(varargin)
0002 % COMBINE multiple parameter lists (plist objects) into a single plist.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: COMBINE multiple parameter lists (plist objects) into a single
0007 %              plist. Duplicate parameters are given priority in the order
0008 %              in which they appear in the input.
0009 %
0010 % CALL:        pl = combine(p1, p2, p3);
0011 %              pl = combine(p1, [p2 p3], p4)
0012 %
0013 % EXAMPLES:    >> pl1 = plist(param('A', 1));
0014 %              >> pl2 = plist(param('A', 3));
0015 %              >> plo = plist(pl1, pl2)
0016 %
0017 %              Then plo will contain a parameter 'A' with value 1.
0018 %
0019 % VERSION:     $Id: combine.m,v 1.4 2007/07/18 13:58:45 ingo Exp $
0020 %
0021 % HISTORY:     28-04-2007 M Hewitson
0022 %                 Creation
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 
0026 
0027 % get input plists
0028 % this code allows for inputs of the form:
0029 % >> pl = combine([p1 p2], p, [p3 p4], p5, p6)
0030 % or some combination of that.
0031 %
0032 pls = [];
0033 for j=1:nargin
0034   pj = varargin{j};
0035   for k=1:length(pj)
0036     pk = pj(k);
0037     if isa(pk, 'plist')
0038       pls = [pls pk];
0039     end
0040   end
0041 end
0042 
0043 % Go through input plists and build output
0044 plo = plist();
0045 np  = length(pls);
0046 % disp(sprintf('* combining %d plists', np));
0047 
0048 for j=np:-1:1
0049   pl = pls(j);
0050   ps = pl.params;
0051   for k=1:length(ps)
0052     plo = set(plo, ps(k).key, ps(k).val);
0053   end
0054 end
0055 
0056 
0057 
0058 
0059 % END

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003