Transformer   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 3
Bugs 3 Features 0
Metric Value
wmc 4
c 3
b 3
f 0
lcom 1
cbo 1
dl 0
loc 53
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 2
A doReply() 0 4 1
A transform() 0 4 1
doTransform() 0 1 ?
1
<?php
2
3
namespace PEIP\ABS\Transformer;
4
5
namespace PEIP\ABS\Transformer;
6
7
/*
8
 * This file is part of the PEIP package.
9
 * (c) 2009-2016 Timo Michna <timomichna/yahoo.de>
10
 *
11
 * For the full copyright and license information, please view the LICENSE
12
 * file that was distributed with this source code.
13
 */
14
15
/*
16
 * PEIP\ABS\Transformer\Transformer
17
 * Abstract base class for transformers.
18
 *
19
 * @author Timo Michna <timomichna/yahoo.de>
20
 * @package PEIP
21
 * @subpackage transformer
22
 * @extends \PEIP\Pipe\Pipe
23
 * @implements \PEIP\INF\Transformer\Transformer, \PEIP\INF\Event\Connectable, \PEIP\INF\Channel\SubscribableChannel, \PEIP\INF\Channel\Channel, \PEIP\INF\Handler\Handler, \PEIP\INF\Message\MessageBuilder
24
 */
25
26
27
28
abstract class Transformer extends \PEIP\Pipe\Pipe
29
{
30
    /**
31
     * constructor.
32
     *
33
     * @param \PEIP\INF\Channel\Channel $inputChannel  the input-channel
34
     * @param \PEIP\INF\Channel\Channel $outputChannel the outputs-channel
35
     *
36
     * @return
37
     */
38
    public function __construct(\PEIP\INF\Channel\Channel $inputChannel, \PEIP\INF\Channel\Channel $outputChannel = null)
39
    {
40
        $this->setInputChannel($inputChannel);
41
        if (is_object($outputChannel)) {
42
            $this->setOutputChannel($outputChannel);
43
        }
44
    }
45
46
    /**
47
     * Sends transformed message on output-channel.
48
     *
49
     * @param \PEIP\INF\Message\Message $message message to transform content
50
     *
51
     * @return
52
     */
53
    public function doReply(\PEIP\INF\Message\Message $message)
54
    {
55
        $this->replyMessage($this->transform($message));
56
    }
57
58
    /**
59
     * Transforms a message.
60
     *
61
     * @param \PEIP\INF\Message\Message $message
62
     *
63
     * @return mixed result of transforming the message
64
     */
65
    public function transform(\PEIP\INF\Message\Message $message)
66
    {
67
        return $this->doTransform($message);
68
    }
69
70
    /**
71
     * Transforms a message.
72
     *
73
     * @abstract
74
     *
75
     * @param \PEIP\INF\Message\Message $message
76
     *
77
     * @return mixed result of transforming the message
78
     */
79
    abstract protected function doTransform(\PEIP\INF\Message\Message $message);
80
}
81