Home > classes > @timespan > set.m

set

PURPOSE ^

SET set timespan properties.

SYNOPSIS ^

function ts = set(ts, varargin)

DESCRIPTION ^

 SET set timespan properties.

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

 DESCRIPTION: SET set timespan properties.

 CALL:        ts = set(ts, 'property', 'value');

 EXAMPLES:    ts = set(ts, 'name',       'my name');
              ts = set(ts, 'start',      '14:00:00');
              ts = set(ts, 'end',        '14:00:05');
              ts = set(ts, 'timeformat', 'HH:MM:SS');
              ts = set(ts, 'timeformat',  31);
              ts = set(ts, 'timezone',   'UTC');
              tt = set(ts, 'created',     time-object);
              tt = set(ts, 'version',    'cvs version string');

 VERSION:     $Id: set.m,v 1.14 2008/03/13 14:46:41 ingo Exp $

 HISTORY:     23-07-2007 Diepholz
                 Creation

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function ts = set(ts, varargin)
0002 % SET set timespan properties.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: SET set timespan properties.
0007 %
0008 % CALL:        ts = set(ts, 'property', 'value');
0009 %
0010 % EXAMPLES:    ts = set(ts, 'name',       'my name');
0011 %              ts = set(ts, 'start',      '14:00:00');
0012 %              ts = set(ts, 'end',        '14:00:05');
0013 %              ts = set(ts, 'timeformat', 'HH:MM:SS');
0014 %              ts = set(ts, 'timeformat',  31);
0015 %              ts = set(ts, 'timezone',   'UTC');
0016 %              tt = set(ts, 'created',     time-object);
0017 %              tt = set(ts, 'version',    'cvs version string');
0018 %
0019 % VERSION:     $Id: set.m,v 1.14 2008/03/13 14:46:41 ingo Exp $
0020 %
0021 % HISTORY:     23-07-2007 Diepholz
0022 %                 Creation
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 
0026 %%% REMARK: This function don't use the generic set-function!!!
0027 
0028 VERSION = '$Id: set.m,v 1.14 2008/03/13 14:46:41 ingo Exp $';
0029 CATEGORY      = 'Helper';
0030 DEFAULT_PLIST =  plist('name',       '',           ...
0031                        'start',      time(),       ...
0032                        'end',        time(),       ...
0033                        'timeformat', timeformat(), ...
0034                        'interval',   '',           ...
0035                        'timezone',   java.util.TimeZone.getTimeZone('UTC'), ...
0036                        'version',    '',           ...
0037                        'plist',      plist(),      ...
0038                        'created',    time);
0039 
0040 timespan_fields = fieldnames(ts);
0041 property_argin = varargin;
0042 
0043 %%% Plausible check: The default parameter list must contain all fieldnames
0044 if length(timespan_fields) ~= nparams(DEFAULT_PLIST)
0045   error('\n### The DEFAULT_PLIST doesn''t contain all field names of the %s-class!', class(ts));
0046 end
0047 
0048 %%% Check if this is a special call: default parameter list, cvs-version, category
0049 if ~isempty(varargin{1}) == 1 && ischar(varargin{1})
0050   in = varargin{1};
0051   if strcmp(in, 'Params')
0052     ts = DEFAULT_PLIST;
0053     return
0054   elseif strcmp(in, 'Version')
0055     ts = VERSION;
0056     return
0057   elseif strcmp(in, 'Category')
0058     ts = CATEGORY;
0059     return
0060   end
0061 end
0062 
0063 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0064 %%% Convert a plist into a key/value set
0065 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0066 if nargin >= 2 && isa(property_argin{1}, 'plist')
0067   pl        = property_argin{1};
0068   property_argin = {};
0069   for ii = 1:nparams(pl)
0070     %% The 'key' name of a plist/param is always stored with upper case
0071     %% characters. To set a ao property with this key we have to lower the
0072     %% 'key' characters.
0073     property_argin{end+1} = lower(pl.params(ii).key);
0074     property_argin{end+1} =       pl.params(ii).val;
0075   end
0076 end
0077 
0078 if (nargout ~= 0)
0079 
0080   while length(property_argin) >= 2
0081     prop = property_argin{1};
0082     val  = property_argin{2};
0083     property_argin = property_argin(3:end);
0084 
0085     if ~ismember(prop, timespan_fields)
0086       error('### ''%s'' is not a valid %s-object property.', prop, class(ts));
0087     else
0088 
0089       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0090       % Set the start/end time.
0091       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0092       if strcmp(prop, 'end') || strcmp(prop, 'start')
0093 
0094         if isa(val, 'time')
0095           val = set(val, 'timeformat', ts.timeformat);
0096           ts.(prop) = val;
0097         elseif ischar(val)
0098           ts_format = char(ts.timeformat);
0099           if ~isnan(str2double(ts_format))
0100             ts_format = str2double(ts_format);
0101           end
0102           tt = time(val, ts_format);
0103           tt = set(tt, 'timeformat', ts.timeformat);
0104           ts.(prop) = tt;
0105         end
0106 
0107         % Compute the interval
0108         ts = compute_interval(ts);
0109 
0110       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0111       % Set the timeformat.
0112       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0113       elseif strcmp(prop, 'timeformat')
0114 
0115         if isa(val, 'timeformat')
0116           ts.timeformat   = val;
0117 
0118           ts.start = set(ts.start, 'timeformat', char(val));
0119           ts.end   = set(ts.end,   'timeformat', char(val));
0120 
0121         elseif ischar(val) || isnumeric(val)
0122           ts.start = set(ts.start, 'timeformat', val);
0123           ts.end   = set(ts.end,   'timeformat', val);
0124 
0125           ts.timeformat   = ts.start.timeformat;
0126         end
0127 
0128       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0129       % Set the timezone
0130       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0131       elseif strcmp(prop, 'timezone')
0132 
0133         ts.start = set(ts.start, 'timezone', val);
0134         ts.end   = set(ts.end,   'timezone', val);
0135 
0136         ts.timezone   = ts.start.timezone;
0137 
0138       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0139       % set all other timespan_fields.
0140       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0141       else
0142         ts.(prop) = val;
0143       end
0144     end
0145 
0146   end
0147 
0148 else
0149   display(ts);
0150   error('\n### No output variable!\n### Please use: %s = set(%s, ''key'', ''value'');', inputname(1), inputname(1));
0151 end

Generated on Mon 31-Mar-2008 13:54:54 by m2html © 2003