docs: function fetchFunction(url, key, data, fetchLinkNames, recursive, fetchMultiple) {
                  if (config.fetchFunction == undefined) {
                      var promisesArray = [];
  
                      promisesArray.push($injector.get("$http").get(url)
                          .then(function (responseData) {
  
                              // wrap the response again with the adapter and return the promise
                              if (recursive) {
                                  return processData(responseData.data, fetchLinkNames, true, fetchMultiple).then(function (processedData) {
                                      data[key] = processedData;
                                  });
                              } else {
                                  return processData(responseData.data).then(function (processedData) {
                                      data[key] = processedData;
                                  });
                              }
                          }, function (error) {
                              if (error.status != 404) {
                                  // just reject the error if its not a 404 as there are links which return a 404 which are not set
                                  return $injector.get("$q").reject(error);
                              }
                          }));
  
                      // wait for all promises to be resolved and return a new promise
                      return $injector.get("$q").all(promisesArray);
                  } else {
                      return config.fetchFunction(url, key, data, fetchLinkNames, recursive, fetchMultiple);
                  }
              }