Entity/DocumentRepository.php
author cavaliet
Mon, 24 Oct 2011 19:08:04 +0200
changeset 12 81cc9274c20a
parent 5 45378793512a
child 18 6f16b9fd6a17
permissions -rwxr-xr-x
Update Tag alias.

<?php

namespace IRI\Bundle\WikiTagBundle\Entity;

use Doctrine\ORM\EntityRepository;
use IRI\Bundle\WikiTagBundle\Model\DocumentInterface;

/**
 * DocumentRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class DocumentRepository extends EntityRepository
{
    function findOneByExternalId($external_id)
    {
        return $this->findOneBy(array("externalId" => strval($external_id)));
    }
    
    function writeDocument(DocumentInterface $document)
    {
        # get document from id
        $baseDocument = $this->findOneByExternalId($document->getId());
    
        if(is_null($baseDocument))
        {
            $baseDocument = new Document();
            $baseDocument->setExternalId(strval($document->getId()));
        }
        $baseDocument->setDescription($document->getDescription());
        $baseDocument->setTitle($document->getTitle());
        
        $this->getEntityManager()->persist($baseDocument);
        $this->getEntityManager()->flush();
        return $baseDocument;
    
    }
    
    function removeDocument(DocumentInterface $document)
    {
        $baseDocument = $this->findOneByExternalId($document->getId());
        if(!is_null($baseDocument))
        {
            $this->getEntityManager()->remove($baseDocument);
        }
    }
    
}