1: <?php
2:
3: /**
4: * Avisota newsletter and mailing system
5: *
6: * PHP Version 5.3
7: *
8: * @copyright bit3 UG 2013
9: * @author Tristan Lins <tristan.lins@bit3.de>
10: * @package avisota-core
11: * @license LGPL-3.0+
12: * @link http://avisota.org
13: */
14:
15: namespace Avisota\Renderer;
16:
17: use Avisota\Message\MessageInterface;
18: use Avisota\Message\NativeMessage;
19:
20: /**
21: * Class DelegateMessageRenderer
22: *
23: * Implementation of a delegate message renderer.
24: * Primary used as base class for custom implementations.
25: */
26: class DelegateMessageRenderer implements MessageRendererInterface
27: {
28: /**
29: * @var MessageRendererInterface
30: */
31: protected $delegate;
32:
33: public function __construct(MessageRendererInterface $delegate)
34: {
35: $this->delegate = $delegate;
36: }
37:
38: /**
39: * @param \Avisota\Renderer\MessageRendererInterface $delegate
40: */
41: public function setDelegate(MessageRendererInterface $delegate)
42: {
43: $this->delegate = $delegate;
44: return $this;
45: }
46:
47: /**
48: * @return \Avisota\Renderer\MessageRendererInterface
49: */
50: public function getDelegate()
51: {
52: return $this->delegate;
53: }
54:
55: /**
56: * {@inheritdoc}
57: */
58: public function renderMessage(MessageInterface $message)
59: {
60: return $this->delegate->renderMessage($message);
61: }
62:
63: /**
64: * {@inheritdoc}
65: */
66: public function canRender(MessageInterface $message)
67: {
68: return $this->delegate->canRender($message);
69: }
70: }