view m-toolbox/classes/+utils/@xml/getNumber.m @ 2:18e956c96a1b database-connection-manager

Add LTPDADatabaseConnectionManager implementation. Matlab code
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Sun, 04 Dec 2011 21:23:09 +0100
parents f0afece42f48
children
line wrap: on
line source


function values = getNumber(node)
  
  shape = utils.xml.getShape(node);
  type  = utils.xml.getType(node);
  
  if any(shape==0)
    
    % Special case for an empty double.
    values = zeros(shape);
    
  else
    
    if  strcmp(type, 'double') || strncmp(type, 'uint', 4) || strncmp(type, 'int', 3) || ...
        strcmp(type, 'single') || strcmp(type, 'float') || strcmp(type, 'logical')
      
      % Get the values direct from the node content
      numberStr = utils.xml.mchar(node.getTextContent());
      if (numberStr(1) == '[')
        values = eval(numberStr);
      else
        values = sscanf(numberStr, '%g ');
      end
      
      % Cast to correct type
      if ~strcmp(type, 'double')
        values = cast(values, type);
      end
      
    elseif strcmp(type, 'doubleVector')
      
      % Get vector
      values = utils.xml.getVector(node);
      
    elseif strcmp(type, 'doubleMatrix')
      
      % Get matrix
      values = utils.xml.getMatrix(node);
      
    else
      
      error('### Unknown number type [%s]', type);
      
    end
    
    % Reshape the values
    values = reshape(values, shape);
    
  end
  
end