code: function (newConfig) {
                  // if the configuration object is 'undefined' then return the configuration object
                  if (typeof newConfig !== 'undefined') {
                      // throw an error if the given configuration is not an object
                      if (!angular.isObject(newConfig)) {
                          throw new Error('The given configuration "' + newConfig + '" is not an object.');
                      }
  
                      // check if the given resource function is not undefined and is of type function
                      if (newConfig.resourcesFunction !== undefined && typeof(newConfig.resourcesFunction) !== 'function') {
                          throw new Error('The given resource function "' + newConfig.resourcesFunction + '" is not of type function.');
                      }
  
                      // check if the given fetch function is not undefined and is of type function
                      if (newConfig.fetchFunction !== undefined && typeof(newConfig.fetchFunction) !== 'function') {
                          throw new Error('The given fetch function "' + newConfig.fetchFunction + '" is not of type function.');
                      }
  
                      // override the default configuration properties with the given new configuration
                      config = deepExtend(config, newConfig);
                  }
                  return config;
              }
docs: @ngdoc function
  @name w20CoreHypermedia.service:HypermediaRestAdapterProvider#config
  @methodOf w20CoreHypermedia.service:HypermediaRestAdapterProvider
  @param {Object} newConfig the new configuration object. See HomeService.
  @returns {Object} The configuration
  
  @description
  
  Sets and gets the configuration object.