Completed
Push — develop ( 488b09...0de0ee )
by Mathias
131:05 queued 122:54
created

MongoJob   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 6
eloc 12
dl 0
loc 37
ccs 0
cts 25
cp 0
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A success() 0 5 1
A failure() 0 5 1
A recoverable() 0 5 1
A getResult() 0 7 2
A setResult() 0 3 1
1
<?php
2
/**
3
 * YAWIK
4
 *
5
 * @filesource
6
 * @license MIT
7
 * @copyright  2013 - 2019 Cross Solution <http://cross-solution.de>
8
 */
9
  
10
/** */
11
namespace Core\Queue\Job;
12
13
use SlmQueue\Job\AbstractJob;
14
use SlmQueue\Worker\Event\ProcessJobEvent;
15
16
/**
17
 * ${CARET}
18
 * 
19
 * @author Mathias Gelhausen <[email protected]>
20
 * @todo write test 
21
 */
22
abstract class MongoJob extends AbstractJob implements ResultProviderInterface
23
{
24
    protected $result;
25
26
    public function setResult(JobResult $result) : void
27
    {
28
        $this->result = $result;
29
    }
30
31
    public function getResult() : JobResult
32
    {
33
        if (!$this->result) {
34
            $this->setResult(new JobResult(ProcessJobEvent::JOB_STATUS_UNKNOWN));
35
        }
36
37
        return $this->result;
38
    }
39
40
    protected function failure(string $message, ?array $extra = null) : int
41
    {
42
        $this->setResult(JobResult::failure($message, $extra));
43
44
        return ProcessJobEvent::JOB_STATUS_FAILURE;
45
    }
46
47
    protected function recoverable(string $message, array $options = []) : int
48
    {
49
        $this->setResult(JobResult::recoverable($message, $options));
50
51
        return ProcessJobEvent::JOB_STATUS_FAILURE_RECOVERABLE;
52
    }
53
54
    protected function success(?string $message = null, ?array $extra = null) : int
55
    {
56
        $this->setResult(JobResult::success($message, $extra));
57
58
        return ProcessJobEvent::JOB_STATUS_SUCCESS;
59
    }
60
}
61