Ejemplo n.º 1
0
 /**
  * Method to convert relative to absolute links.
  *
  * @param   RApiHalDocumentResource  $hal            Hal object which contains links (_links).
  * @param   boolean                  $absoluteHrefs  Should we replace link Href with absolute.
  *
  * @return  void
  */
 protected function relToAbs($hal, $absoluteHrefs)
 {
     if ($links = $hal->getLinks()) {
         // Adjust hrefs in the _links object.
         /* @var $link RApiHalDocumentLink */
         foreach ($links as $link) {
             if (is_array($link)) {
                 foreach ($link as $group => $arrayLink) {
                     $href = $arrayLink->getHref();
                     $href = $this->addUriParameters($href, $absoluteHrefs);
                     $arrayLink->setHref($href);
                     $hal->setReplacedLink($arrayLink, $group);
                 }
             } else {
                 $href = $link->getHref();
                 $href = $this->addUriParameters($href, $absoluteHrefs);
                 $link->setHref($href);
                 $hal->setReplacedLink($link);
             }
         }
     }
     // Adjust hrefs in the _embedded object (if there is one).
     if ($embedded = $hal->getEmbedded()) {
         foreach ($embedded as $resources) {
             if (is_object($resources)) {
                 $this->relToAbs($resources, $absoluteHrefs);
             } elseif (is_array($resources)) {
                 foreach ($resources as $resource) {
                     if (is_object($resource)) {
                         $this->relToAbs($resource, $absoluteHrefs);
                     }
                 }
             }
         }
     }
 }