Exemplo n.º 1
0
 public function setData($mData)
 {
     if (is_resource($mData)) {
         $mData = stream_get_contents($mData);
     }
     $sHash = sha1($mData);
     $sPreviousHash = $this->getHash();
     if ($sHash === $sPreviousHash) {
         return;
     }
     $oOldDocumentData = $this->getDocumentData();
     if ($oOldDocumentData && $oOldDocumentData->countDocuments() <= 1) {
         // Only remaining document is the one to be updated
         $oOldDocumentData->delete();
     }
     $oDocumentData = DocumentDataQuery::create()->findPk($sHash);
     if ($oDocumentData === null) {
         $oDocumentData = new DocumentData();
         $oDocumentData->setHash($sHash);
         $oDocumentData->setDataSize(strlen($mData));
         $oDocumentData->setData($mData);
     }
     $this->setDocumentData($oDocumentData);
     return $this;
 }