InvalidStateTransitionException::getNewState()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
/*
4
 * Copyright 2012 Johannes M. Schmitt <[email protected]>
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 * http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 */
18
19
namespace JMS\JobQueueBundle\Exception;
20
21
use JMS\JobQueueBundle\Entity\Job;
22
23
class InvalidStateTransitionException extends \InvalidArgumentException
24
{
25
    private $job;
26
    private $newState;
27
    private $allowedStates;
28
29 2
    public function __construct(Job $job, $newState, array $allowedStates = array())
30
    {
31 2
        $msg = sprintf('The Job(id = %d) cannot change from "%s" to "%s". Allowed transitions: ', $job->getId(), $job->getState(), $newState);
32 2
        $msg .= count($allowedStates) > 0 ? '"' . implode('", "', $allowedStates) . '"' : '#none#';
33 2
        parent::__construct($msg);
34
35 2
        $this->job = $job;
36 2
        $this->newState = $newState;
37 2
        $this->allowedStates = $allowedStates;
38 2
    }
39
40
    public function getJob()
41
    {
42
        return $this->job;
43
    }
44
45
    public function getNewState()
46
    {
47
        return $this->newState;
48
    }
49
50
    public function getAllowedStates()
51
    {
52
        return $this->allowedStates;
53
    }
54
}
55