diff m-toolbox/classes/+utils/@helper/getDefaultValue.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/+utils/@helper/getDefaultValue.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,38 @@
+% GETDEFAULTVALUE Returns the default value of a class property.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DESCRIPTION: Returns the default value of a class property if any default
+%              value is defined.
+%
+% CALL:        dv = getDefaultValue(obj, prop);
+%
+% INPUTS:      obj:  LTPDA object or a class string
+%              prop: Property name of the class
+%
+% OUTPUTS:     dv:   Default value of the property.
+%
+% VERSION:     $Id: getDefaultValue.m,v 1.1 2011/04/11 19:47:36 ingo Exp $
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function dv = getDefaultValue(obj, prop)
+  
+  % Get the default value of the property from the meta data
+  if ischar(obj)
+    m = meta.class.fromName('smodel');
+  elseif isa(obj, 'ltpda_obj')
+    m = metaclass(obj);
+  else
+    error('### Unknown input. Please use: getDefaultValue(obj, prop)');
+  end
+  
+  p = [m.Properties{:}];
+  idx = strcmp({p(:).Name}, prop) & [p.HasDefault];
+  
+  if any(idx)
+    dv = p(idx).DefaultValue;
+  else
+    error('### Can not find any default value for the [%s] property of the [%s] class', prop, m.Name);
+  end
+
+end