Changeset 11867


Ignore:
Timestamp:
04/03/12 07:25:16 (13 years ago)
Author:
Mathieu Morlighem
Message:

Pairoptions less restrictive for now

Location:
issm/trunk-jpl/src/m/classes
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/clusters/castor.m

    r11365 r11867  
    2121         methods
    2222                 function cluster=castor(varargin) % {{{1
    23                          options=pairoptions(varargin{:});
    24                          for i=1:size(options.list,1),
    25                                  fieldname=options.list{i,1};
    26                                  fieldvalue=options.list{i,2};
    27                                  if ismember(fieldname,properties('castor')),
    28                                          cluster.(fieldname)=fieldvalue;
    29                                  else
    30                                          disp(['''' fieldname ''' is not a property of cluster castor']);
    31                                  end
    32                          end
     23                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    3324                 end
    3425                 %}}}
  • issm/trunk-jpl/src/m/classes/clusters/cosmos.m

    r11365 r11867  
    2121         methods
    2222                 function cluster=cosmos(varargin) % {{{1
    23                          options=pairoptions(varargin{:});
    24                          for i=1:size(options.list,1),
    25                                  fieldname=options.list{i,1};
    26                                  fieldvalue=options.list{i,2};
    27                                  if ismember(fieldname,properties('cosmos')),
    28                                          cluster.(fieldname)=fieldvalue;
    29                                  else
    30                                          disp(['''' fieldname ''' is not a property of cluster cosmos']);
    31                                  end
    32                          end
     23                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    3324                 end
    3425                 %}}}
  • issm/trunk-jpl/src/m/classes/clusters/gemini.m

    r11365 r11867  
    2121    methods
    2222                 function cluster=gemini(varargin) % {{{1
    23                          options=pairoptions(varargin{:});
    24                          for i=1:size(options.list,1),
    25                                  fieldname=options.list{i,1};
    26                                  fieldvalue=options.list{i,2};
    27                                  if ismember(fieldname,properties('gemini')),
    28                                          cluster.(fieldname)=fieldvalue;
    29                                  else
    30                                          disp(['''' fieldname ''' is not a property of cluster gemini']);
    31                                  end
    32                          end
     23                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    3324                 end
    3425                 %}}}
  • issm/trunk-jpl/src/m/classes/clusters/generic.m

    r11485 r11867  
    3535
    3636                         %OK get other fields
    37                          for i=1:size(options.list,1),
    38                                  fieldname=options.list{i,1};
    39                                  fieldvalue=options.list{i,2};
    40                                  if ismember(fieldname,properties('generic')),
    41                                          cluster.(fieldname)=fieldvalue;
    42                                  else
    43                                          disp(['''' fieldname ''' is not a property of cluster generic']);
    44                                  end
    45                          end
     37                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    4638                 end
    4739                 %}}}
  • issm/trunk-jpl/src/m/classes/clusters/greenplanet.m

    r11474 r11867  
    3030
    3131                         %use provided options to change fields
    32                          options=pairoptions(varargin{:});
    33                          for i=1:size(options.list,1),
    34                                  fieldname=options.list{i,1};
    35                                  fieldvalue=options.list{i,2};
    36                                  if ismember(fieldname,properties('greenplanet')),
    37                                          cluster.(fieldname)=fieldvalue;
    38                                  else
    39                                          disp(['''' fieldname ''' is not a property of cluster greenplanet']);
    40                                  end
    41                          end
     32                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    4233                 end
    4334                 %}}}
  • issm/trunk-jpl/src/m/classes/clusters/none.m

    r9853 r11867  
    1212    methods
    1313                 function cluster=none(varargin) % {{{1
    14                          options=pairoptions(varargin{:});
    15                          for i=1:size(options.list,1),
    16                                  fieldname=options.list{i,1};
    17                                  fieldvalue=options.list{i,2};
    18                                  if ismember(fieldname,properties('none')),
    19                                          cluster.(fieldname)=fieldvalue;
    20                                  else
    21                                          disp(['''' fieldname ''' is not a property of cluster none']);
    22                                  end
    23                          end
     14                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    2415                 end
    2516                 %}}}
  • issm/trunk-jpl/src/m/classes/clusters/pfe.m

    r11162 r11867  
    3535
    3636                         %use provided options to change fields
    37                          options=pairoptions(varargin{:});
    38                          for i=1:size(options.list,1),
    39                                  fieldname=options.list{i,1};
    40                                  fieldvalue=options.list{i,2};
    41                                  if ismember(fieldname,properties('pfe')),
    42                                          cluster.(fieldname)=fieldvalue;
    43                                  else
    44                                          disp(['''' fieldname ''' is not a property of cluster pfe']);
    45                                  end
    46                          end
     37                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    4738                 end
    4839                 %}}}
  • issm/trunk-jpl/src/m/classes/clusters/pollux.m

    r11365 r11867  
    2121         methods
    2222                 function cluster=pollux(varargin) % {{{1
    23                          options=pairoptions(varargin{:});
    24                          for i=1:size(options.list,1),
    25                                  fieldname=options.list{i,1};
    26                                  fieldvalue=options.list{i,2};
    27                                  if ismember(fieldname,properties('pollux')),
    28                                          cluster.(fieldname)=fieldvalue;
    29                                  else
    30                                          disp(['''' fieldname ''' is not a property of cluster pollux']);
    31                                  end
    32                          end
     23                         cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
    3324                 end
    3425                 %}}}
  • issm/trunk-jpl/src/m/classes/pairoptions.m

    r11866 r11867  
    66
    77classdef pairoptions
    8         properties (SetAccess = private,GetAccess = private)
     8        properties (SetAccess = private)%,GetAccess = private)
    99                functionname = '';
    1010                list         = cell(0,2);
     
    6565                                        obj.list{end+1,1} = field;
    6666                                        obj.list{end,2}   = value;
     67                                end
     68                        end
     69                end % }}}
     70                function obj2 = AssignObjectFields(options,obj2) % {{{
     71                %ASSIGNOBJECTFIELDS - assign object fields from options
     72                        listproperties=properties(obj2);
     73                        for i=1:size(options.list,1),
     74                                fieldname=options.list{i,1};
     75                                fieldvalue=options.list{i,2};
     76                                if ismember(fieldname,listproperties),
     77                                        obj2.(fieldname)=fieldvalue;
     78                                else
     79                                        disp(['WARNING: ''' fieldname ''' is not a property of ''' class(obj2) '''']);
    6780                                end
    6881                        end
  • issm/trunk-jpl/src/m/classes/verbose.m

    r10969 r11867  
    3737                function verbose=verbose(varargin) % {{{1
    3838
    39                         if nargin==1,
     39                        switch(nargin),
     40                                case 0,
     41                                        %Don't do anything
     42                                case 1,
     43                                        binary=varargin{1};
     44                                        if ischar(binary),
     45                                                if strcmpi(binary,'all'),
     46                                                        binary=2^11-1; %all ones
     47                                                        verbose=BinaryToVerbose(verbose,binary);
     48                                                        verbose.solver=false; %Do not use by default
     49                                                else
     50                                                        binary=bin2dec(binary);
     51                                                        verbose=BinaryToVerbose(verbose,binary);
     52                                                end
     53                                        end
     54                                otherwise,
     55                                        %Use options to initialize object
     56                                        verbose=AssignObjectFields(pairoptions(varargin{:}),verbose);
    4057
    41                                 binary=varargin{1};
    42                                 if ischar(binary),
    43                                         if strcmpi(binary,'all'),
    44                                                 binary=2^11-1; %all ones
    45                                                 verbose=BinaryToVerbose(verbose,binary);
    46                                                 verbose.solver=false; %Do not use by default
    47                                         else
    48                                                 binary=bin2dec(binary);
    49                                                 verbose=BinaryToVerbose(verbose,binary);
    50                                         end
    51                                 end
    52                         else
    53 
    54                                 options=pairoptions(varargin{:});
    55                                 for i=1:size(options.list,1),
    56                                         fieldname=options.list{i,1};
    57                                         fieldvalue=options.list{i,2};
    58                                         if ismember(fieldname,properties('verbose')),
    59                                                 if islogical(fieldvalue) | isnumeric(fieldvalue),
     58                                        %Cast to logicals
     59                                        listproperties=properties('verbose');
     60                                        for i=1:numel(listproperties),
     61                                                fieldname=listproperties{i};
     62                                                fieldvalue=verbose.(fieldname);
     63                                                if (islogical(fieldvalue) | isnumeric(fieldvalue)) & numel(fieldvalue)==1,
    6064                                                        verbose.(fieldname)=logical(fieldvalue);
    6165                                                else
    6266                                                        error('verbose supported field values are logicals only (true or false)');
    6367                                                end
    64                                         else
    65                                                 disp(['''' fieldname ''' is not a property of verbose verbose']);
    6668                                        end
    67                                 end
    68 
    6969                        end
    7070                end
Note: See TracChangeset for help on using the changeset viewer.