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->initDao(get_class($sourceDoc), true);
$destDoc->setHardLinkSource($doc);
return $destDoc;
}
} else {
$sourceClass = get_class($doc);
$doc = self::upperCastDocument($doc);
$doc->initDao($sourceClass, true);
return $doc;
}
return;
}