1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
<?php
/* --------------------------------------------------------------
InfoBoxRepository.inc.php 2016-08-25
Gambio GmbH
http://www.gambio.de
Copyright (c) 2016 Gambio GmbH
Released under the GNU General Public License (Version 2)
[http://www.gnu.org/licenses/gpl-2.0.html]
--------------------------------------------------------------
*/
/**
* Class InfoBoxRepository
*
* @category System
* @package InfoBox
* @subpackage Repositories
*/
class InfoBoxRepository implements InfoBoxRepositoryInterface
{
/**
* @var InfoBoxRepositoryReaderInterface
*/
protected $reader;
/**
* @var InfoBoxRepositoryWriterInterface
*/
protected $writer;
/**
* @var InfoBoxRepositoryDeleterInterface
*/
protected $deleter;
/**
* InfoBoxRepository constructor.
*
* @param InfoBoxRepositoryReaderInterface $reader
* @param InfoBoxRepositoryWriterInterface $writer
* @param InfoBoxRepositoryDeleterInterface $deleter
*/
public function __construct(InfoBoxRepositoryReaderInterface $reader,
InfoBoxRepositoryWriterInterface $writer,
InfoBoxRepositoryDeleterInterface $deleter)
{
$this->writer = $writer;
$this->reader = $reader;
$this->deleter = $deleter;
}
/**
* Returns all info box messages.
*
* @return InfoBoxMessageCollection
*/
public function getAllMessages()
{
return $this->reader->getAll();
}
/**
* Adds a new info box message.
*
* @param InfoBoxMessageInterface $message Message to save.
*/
public function addMessage(InfoBoxMessageInterface $message)
{
$this->writer->write($message);
}
/**
* Updates a info box message.
*
* @param InfoBoxMessageInterface $message Message to update.
*/
public function updateMessage(InfoBoxMessageInterface $message)
{
$this->writer->update($message);
}
/**
* Reactivates the messages.
*/
public function reactivateMessages()
{
$this->writer->reactivate();
}
/**
* Deletes a message based on the source.
*
* @param StringType $source Message source.
*/
public function deleteMessageBySource(StringType $source)
{
$this->deleter->deleteBySource($source);
}
/**
* Deletes a message based on its identifier.
*
* @param StringType $identifier Message identifier.
*/
public function deleteMessageByIdentifier(StringType $identifier)
{
$this->deleter->deleteByIdentifier($identifier);
}
/**
* Deletes a message by its ID.
*
* @param IdType $id Message ID.
*/
public function deleteMessageById(IdType $id)
{
$this->deleter->deleteById($id);
}
/**
* Updates a message status.
*
* @param IdType $id Message ID.
* @param StringType $status Message status.
*/
public function setMessageStatus(IdType $id, StringType $status)
{
$this->writer->setStatus($id, $status);
}
}