diff m-toolbox/classes/@ltpda_uoh/setObjectProperties.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/classes/@ltpda_uoh/setObjectProperties.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,58 @@
+% SETOBJECTPROPERTIES sets the object properties of an ltpda_uoh object.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DESCRIPTION: SETOBJECTPROPERTIES sets the object properties of an
+%              ltpda_uoh object from the input plist. 
+% 
+% Only the keys in plist which are actually object properties are used;
+% other keys are ignored.
+%
+% CALL:        objs.setObjectProperties(pl);
+%              objs.setObjectProperties(pl, exceptions);
+%
+% 'exceptions' should be a cell-array of property names which will be
+% ignored (not set).
+%
+% <a href="matlab:utils.helper.displayMethodInfo('ltpda_uoh', 'setObjectProperties')">Parameters Description</a>
+%
+% VERSION:     $Id: setObjectProperties.m,v 1.6 2011/09/16 05:01:46 hewitson Exp $
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function varargout = setObjectProperties(varargin)
+
+  % Get inputs
+  as = varargin{1};
+  pl = varargin{2};
+  
+  if nargin > 2
+    exceptions = varargin{3};
+  else
+    exceptions = {};
+  end
+  
+  % Decide on a deep copy or a modify
+  bs = copy(as, nargout);
+  
+  % Loop over ltpda_uoh objects
+  props = properties(as);
+  keys  = pl.getKeys;
+  
+  for kk=1:numel(keys)
+    key = lower(keys{kk});
+    if utils.helper.ismember(key, exceptions)
+%       fprintf('- skipping setting %s\n', key);
+    elseif utils.helper.ismember(key, props)
+%       fprintf('+ setting property %s\n', key);
+      fcn = ['set' upper(key(1)) key(2:end)];
+      if ismethod(bs, fcn)
+        feval(fcn, bs, pl.find(key));
+      end
+    end
+    
+  end
+  
+  % Set output
+  varargout = utils.helper.setoutputs(nargout, bs);
+end
+