~tsep-dev/tsep/2.x

« back to all changes in this revision

Viewing changes to vendor/bundles/Xaav/QueueBundle/Entity/Job.php

  • Committer: xaav at xaav
  • Date: 2011-07-12 16:34:34 UTC
  • Revision ID: xaav@xaav.tk-20110712163434-7c9hb6oq468lyjop
Added XaavQueueBundle to deps

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
 
3
 
namespace Xaav\QueueBundle\Entity;
4
 
 
5
 
use Xaav\QueueBundle\JobQueue\JobInterface;
6
 
use Xaav\QueueBundle\Exception\InvalidCallableException;
7
 
use Xaav\QueueBundle\JobQueue\JobCallableInterface;
8
 
use Doctrine\ORM\Mapping as ORM;
9
 
 
10
 
/**
11
 
 * @ORM\Entity(repositoryClass="Xaav\QueueBundle\Entity\JobRepository")
12
 
 */
13
 
class Job implements JobInterface
14
 
{
15
 
    /**
16
 
     * @ORM\Id
17
 
     * @ORM\Column(type="integer")
18
 
     * @ORM\GeneratedValue(strategy="AUTO")
19
 
     */
20
 
    protected $id;
21
 
 
22
 
    /**
23
 
     * @ORM\Column(type="string", length="1000")
24
 
     */
25
 
    protected $callable;
26
 
 
27
 
    /**
28
 
     * @ORM\ManyToOne(targetEntity="JobQueue", inversedBy="Job")
29
 
     */
30
 
    protected $jobQueue;
31
 
 
32
 
    public function __construct(JobCallableInterface $callable = null)
33
 
    {
34
 
        if ($callable){
35
 
 
36
 
            $this->callable = serialize($callable);
37
 
        }
38
 
    }
39
 
 
40
 
    public function execute()
41
 
    {
42
 
        $callable = unserialize($this->callable);
43
 
 
44
 
        if($callable instanceof JobCallableInterface){
45
 
            $callable->call();
46
 
        }
47
 
        else {
48
 
            throw new InvalidCallableException($callable);
49
 
        }
50
 
    }
51
 
 
52
 
    /**
53
 
     * Get id
54
 
     *
55
 
     * @return integer $id
56
 
     */
57
 
    public function getId()
58
 
    {
59
 
        return $this->id;
60
 
    }
61
 
 
62
 
    /**
63
 
     * Set callable
64
 
     *
65
 
     * @param string $callable
66
 
     */
67
 
    public function setCallable($callable)
68
 
    {
69
 
        $this->callable = $callable;
70
 
    }
71
 
 
72
 
    /**
73
 
     * Get callable
74
 
     *
75
 
     * @return string $callable
76
 
     */
77
 
    public function getCallable()
78
 
    {
79
 
        return $this->callable;
80
 
    }
81
 
 
82
 
    /**
83
 
     * Set jobQueue
84
 
     *
85
 
     * @param Xaav\QueueBundle\Entity\JobQueue $jobQueue
86
 
     */
87
 
    public function setJobQueue(\Xaav\QueueBundle\Entity\JobQueue $jobQueue)
88
 
    {
89
 
        $this->jobQueue = $jobQueue;
90
 
    }
91
 
 
92
 
    /**
93
 
     * Get jobQueue
94
 
     *
95
 
     * @return Xaav\QueueBundle\Entity\JobQueue $jobQueue
96
 
     */
97
 
    public function getJobQueue()
98
 
    {
99
 
        return $this->jobQueue;
100
 
    }
101
 
}
 
 
b'\\ No newline at end of file'