code: function getValues(ids, data, expectSingle) {
      console.log('getValues', arguments);
      if (expectSingle) {
        if (ids.length === 1) {
          return Promise.resolve(data[ids[0]]);
        } else {
          return Promise.reject(new Error('More than one value going to be '
              + 'returned: ' + ids));
        }
      } else {
        var result = {};
  
        ids.forEach(function(arg) {
          result[arg] = data[arg];
        });
  
        return Promise.resolve(result);
      }
    }
docs: @private
  Extracts the values for the given keys from the data Object
  
  @param {Key[]} ids Keys to get values for
  @param {Object} data Object to extract values from
  @param {Boolean} [expectSingle] If true, the single value will be returned
  as only the value (as opposed to the normal key/value Object. If a single
  value is not going to be returned, the Promise will reject with an error.
  
  @returns {Promise} A promise that resolves to the data. If only one key is
  given, only the value will be returned. Otherwise it will be a Object
  containing the key/value pairs.