Changeset 10348 for issm/trunk


Ignore:
Timestamp:
10/28/11 10:04:36 (13 years ago)
Author:
seroussi
Message:

Better error message if field is not a string

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/utils/consistency/checkfield.m

    r10138 r10348  
    9898        fieldvalues=getfieldvalue(options,'values');
    9999        if iscell(fieldvalues), %strings
    100                 if any(~ismember(field,fieldvalues)),
    101                         if length(fieldvalues)==1
    102                                 checkmessage(getfieldvalue(options,'message',...
    103                                         ['field ''' fieldname ''' value should be ' fieldvalues{1} ]));
    104                         elseif length(fieldvalues)==2
    105                                 checkmessage(getfieldvalue(options,'message',...
    106                                         ['field ''' fieldname ''' values should be ' fieldvalues{1} ' or ' fieldvalues{2} ]));
    107                         else
    108                                 checkmessage(getfieldvalue(options,'message',...
    109                                         ['field ''' fieldname ''' should have values in ' sprintf('''%s'', ',fieldvalues{1:end-1}) 'or ''' fieldvalues{end} '''']));
     100                if ischar(field),
     101                        if any(~ismember(field,fieldvalues)),
     102                                if length(fieldvalues)==1
     103                                        checkmessage(getfieldvalue(options,'message',...
     104                                                ['field ''' fieldname ''' value should be ' fieldvalues{1} ]));
     105                                elseif length(fieldvalues)==2
     106                                        checkmessage(getfieldvalue(options,'message',...
     107                                                ['field ''' fieldname ''' values should be ' fieldvalues{1} ' or ' fieldvalues{2} ]));
     108                                else
     109                                        checkmessage(getfieldvalue(options,'message',...
     110                                                ['field ''' fieldname ''' should have values in ' sprintf('''%s'', ',fieldvalues{1:end-1}) 'or ''' fieldvalues{end} '''']));
     111                                end
    110112                        end
     113                else
     114                        checkmessage(getfieldvalue(options,'message',...
     115                                ['field ''' fieldname ''' should be one of the following strings: ' sprintf('''%s'', ',fieldvalues{1:end-1}) 'or ''' fieldvalues{end} '''']));
    111116                end
    112117        else
    113118                field2=reshape(field,prod(size(field)),1);
    114                 if any(~ismember(field2,fieldvalues)),
     119                if isnumeric(field),
     120                        if any(~ismember(field2,fieldvalues)),
     121                                checkmessage(getfieldvalue(options,'message',...
     122                                        ['field ''' fieldname ''' should have values in [' num2str(fieldvalues) ']']));
     123                        end
     124                else
    115125                        checkmessage(getfieldvalue(options,'message',...
    116                                 ['field ''' fieldname ''' should have values in [' num2str(fieldvalues) ']']));
     126                                ['field ''' fieldname ''' should be a number in [' num2str(fieldvalues) ']']));
    117127                end
    118128        end
Note: See TracChangeset for help on using the changeset viewer.