Ignore:
Timestamp:
10/29/10 10:13:49 (14 years ago)
Author:
jschierm
Message:

Addition of set methods to all the kml classes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/kml/kml_container.m

    r6454 r6455  
    4949                            else
    5050                                if ~isempty(inputname(i))
    51                                     warning('Argument ''%s'' for field ''%s'' is a ''%s'' class object, not ''%s''.',...
     51                                    warning('Argument ''%s'' for property ''%s'' is a ''%s'' class object, not ''%s''.',...
    5252                                        inputname(i),fnames{i},class(varargin{i}),class(kml.(fnames{i})));
    5353                                else
    54                                     warning('Argument %d for field ''%s'' is a ''%s'' class object, not ''%s''.',...
     54                                    warning('Argument %d for property ''%s'' is a ''%s'' class object, not ''%s''.',...
    5555                                        i           ,fnames{i},class(varargin{i}),class(kml.(fnames{i})));
    5656                                end
     
    7575                if strcmp(class(kml),'kml_container')
    7676                    disp(sprintf('\n'));
     77                end
     78            end
     79
     80        end
     81
     82%  set the properties of the object
     83
     84        function [kml]=set(kml,varargin)
     85
     86            kmlref=feval(class(kml));
     87
     88%  loop through each parameter in the input list (comparing to the reference
     89%  object in case property types have been changed)
     90
     91            for i=1:2:length(varargin)
     92                if isfield(kmlref,varargin{i})
     93                    if isa(varargin{i+1},class(kmlref.(varargin{i})))
     94                        kml.(varargin{i})=varargin{i+1};
     95                    else
     96                        if ~isempty(inputname(i+1))
     97                            warning('Argument ''%s'' for property ''%s'' is a ''%s'' class object, not ''%s''.',...
     98                                inputname(i+1),varargin{i},class(varargin{i+1}),class(kmlref.(varargin{i})));
     99                        else
     100                            warning('Argument %d for property ''%s'' is a ''%s'' class object, not ''%s''.',...
     101                                i+1           ,varargin{i},class(varargin{i+1}),class(kmlref.(varargin{i})));
     102                        end
     103                    end
     104                else
     105                    warning('Property ''%s'' for class ''%s'' does not exist.',...
     106                        varargin{i},class(kmlref));
    77107                end
    78108            end
Note: See TracChangeset for help on using the changeset viewer.