Mercurial > hg > ltpda
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