1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
-
- namespace Luticate\Utils\Dbo;
-
- class LuPaginatedDbo extends LuDbo {
-
- /**
- * @var int
- */
- private $_count;
- public function setCount($count)
- {
- $this->_count = $count;
- }
- public function getCount()
- {
- return $this->_count;
- }
-
- /**
- * @var array
- */
- private $_data;
- public function setData($data)
- {
- $this->_data = $data;
- }
- public function getData()
- {
- return $this->_data;
- }
-
- function jsonSerialize()
- {
- return array(
- "count" => $this->_count,
- "data" => LuDbo::serializeValue($this->_data)
- );
- }
-
- function __construct($count = 0, $data = array())
- {
- $this->_count = $count;
- $this->_data = $data;
- }
-
- function map(callable $callback)
- {
- $values = [];
- foreach ($this->_data as $data) {
- $values[] = $callback($data);
- }
- return new static($this->_count, $values);
- }
-
- public static function jsonDeserialize($json)
- {
- return new static($json["count"], $json["data"]);
- }
-
- public static function generateSample()
- {
- return [
- "count" => 42,
- "data" => []
- ];
- }
- }
|