/**
* @param Document $doc
* @return Document
* @throws Model\Exception
*/
public static function wrap(Document $doc)
{
if ($doc instanceof Document\Hardlink) {
if ($sourceDoc = $doc->getSourceDocument()) {
$destDoc = self::upperCastDocument($sourceDoc);
$destDoc->setKey($doc->getKey());
$destDoc->setPath($doc->getRealPath());
$destDoc->initResource(get_class($sourceDoc));
$destDoc->setHardLinkSource($doc);
return $destDoc;
}
} else {
$sourceClass = get_class($doc);
$doc = self::upperCastDocument($doc);
$doc->initResource($sourceClass);
return $doc;
}
return;
}