Entity/DocumentRepository.php
author ymh <ymh.work@gmail.com>
Mon, 17 Oct 2011 13:51:50 +0200
changeset 3 976d922e52f0
parent 2 13f43f53d0ba
child 5 45378793512a
permissions -rw-r--r--
link document lifecycle
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
namespace IRI\Bundle\WikiTagBundle\Entity;
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use Doctrine\ORM\EntityRepository;
3
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
     6
use IRI\Bundle\WikiTagBundle\Model\DocumentInterface;
2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
/**
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * DocumentRepository
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 *
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 * This class was generated by the Doctrine ORM. Add your own custom
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
 * repository methods below.
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
 */
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
class DocumentRepository extends EntityRepository
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
{
3
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    16
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    17
    function writeDocument(DocumentInterface $document)
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    18
    {
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    19
        # get document from id
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    20
        $baseDocument = $this->findOneBy(array("externalId" => $document->getId()));
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    21
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    22
        if(is_null($baseDocument))
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    23
        {
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    24
            $baseDocument = new Document();
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    25
            $baseDocument->setExternalId($document->getId());
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    26
        }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    27
        $baseDocument->setDescription($document->getDescription());
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    28
        $baseDocument->setTitle($document->getTitle());
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    29
        
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    30
        $this->getEntityManager()->persist($baseDocument);
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    31
        $this->getEntityManager()->flush();
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    32
        return $baseDocument;
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    33
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    34
    }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    35
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    36
    function removeDocument(DocumentInterface $document)
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    37
    {
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    38
        $baseDocument = $this->findOneBy(array("externalId" => $document->getId()));
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    39
        if(!is_null($baseDocument)) {
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    40
            $this->getEntityManager()->remove($baseDocument);
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    41
        }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    42
    }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    43
    
2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
}