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.8 2007/10/16 17:37:21 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.8 2007/10/16 17:37:21 ingo Exp $
0020 %
0021 % HISTORY:     23-07-2007 Diepholz
0022 %                 Creation
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 
0026 VERSION = '$Id: set.m,v 1.8 2007/10/16 17:37:21 ingo Exp $';
0027 
0028 % Check if this is a call for parameters or for the cvs-version number
0029 if nargin == 2
0030   if isa(ts, 'timespan') && ischar(varargin{1})
0031     in = char(varargin{1});
0032     if strcmp(in, 'Params')
0033       ts = plist();
0034       return
0035     elseif strcmp(in, 'Version')
0036       ts = VERSION;
0037       return
0038     end
0039   end
0040 end
0041 
0042 if (nargout ~= 0)
0043 
0044   fields = fieldnames(ts);
0045 
0046   property_argin = varargin;
0047 
0048   while length(property_argin) >= 2
0049     prop = property_argin{1};
0050     val  = property_argin{2};
0051     property_argin = property_argin(3:end);
0052 
0053     if ~ismember(prop, fields)
0054       error(['### ', prop, ' is not a valid timespan property.']);
0055     else
0056       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0057       % Set the start time.
0058       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0059       if strcmp(prop, 'start')
0060 
0061         if isa(val, 'time')
0062           val = set(val, 'timeformat', ts.timeformat);
0063           ts.start = val;
0064         elseif ischar(val)
0065           ts.start = time(val, char(ts.timeformat));
0066         end
0067 
0068         % Compute the interval
0069         ts = compute_interval(ts);
0070 
0071         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0072       % Set the end time.
0073       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0074       elseif strcmp(prop, 'end')
0075 
0076         if isa(val, 'time')
0077           val = set(val, 'timeformat', ts.timeformat);
0078           ts.end = val;
0079         elseif ischar(val)
0080           ts.end = time(val, char(ts.timeformat));
0081         end
0082 
0083         % Compute the interval
0084         ts = compute_interval(ts);
0085 
0086       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0087       % Set the timeformat.
0088       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0089       elseif strcmp(prop, 'timeformat')
0090 
0091         if isa(val, 'timeformat')
0092           ts.timeformat   = val;
0093 
0094           ts.start = set(ts.start, 'timeformat', char(val));
0095           ts.end   = set(ts.end,   'timeformat', char(val));
0096 
0097         elseif ischar(val) || isnumeric(val)
0098           ts.start = set(ts.start, 'timeformat', val);
0099           ts.end   = set(ts.end,   'timeformat', val);
0100 
0101           ts.timeformat   = ts.start.timeformat;
0102         end
0103 
0104       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0105       % Set the timezone
0106       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0107       elseif strcmp(prop, 'timezone')
0108 
0109         ts.start = set(ts.start, 'timezone', val);
0110         ts.end   = set(ts.end,   'timezone', val);
0111 
0112         ts.timezone   = ts.start.timezone;
0113 
0114       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0115       % set all other fields.
0116       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0117       else
0118         ts.(prop) = val;
0119       end
0120     end
0121 
0122   end
0123 
0124 else
0125   if ischar(varargin{2})
0126     error('### please use: %s = set(%s, ''%s'', ''%s'');', ...
0127                         inputname(1), ...
0128                         inputname(1), ...
0129                         varargin{1},  ...
0130                         varargin{2});
0131   elseif isnumeric(varargin{2})
0132     error('### please use: %s = set(%s, ''%s'', %d);', ...
0133                         inputname(1), ...
0134                         inputname(1), ...
0135                         varargin{1},  ...
0136                         varargin{2});
0137   else
0138     error('### please use: %s = set(%s, ''key'', ''value'');', ...
0139                         inputname(1), ...
0140                         inputname(1));
0141   end
0142 end

Generated on Thu 01-Nov-2007 09:42:34 by m2html © 2003