tao-test/app/ltiDeliveryProvider/model/execution/implementation/KvLTIDeliveryExecutionLink.php

131 lines
3.2 KiB
PHP

<?php
/**
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; under version 2
* of the License (non-upgradable).
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Copyright (c) 2017 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
*
*
*/
namespace oat\ltiDeliveryProvider\model\execution\implementation;
use oat\ltiDeliveryProvider\model\execution\LTIDeliveryExecutionLink;
/**
* Class KvLTIDeliveryExecutionLink
* Key value implementation of LTIDeliveryExecutionLink
* @package oat\ltiDeliveryProvider\model\execution\implementation
*/
class KvLTIDeliveryExecutionLink implements LTIDeliveryExecutionLink, \JsonSerializable
{
private $userId;
private $deliveryExecutionId;
private $linkId;
/**
* KvLTIDeliveryExecutionLink constructor.
* @param $userId
* @param $deliveryExecutionId
* @param $linkId
*/
public function __construct($userId, $deliveryExecutionId, $linkId)
{
$this->userId = $userId;
$this->deliveryExecutionId = $deliveryExecutionId;
$this->linkId = $linkId;
}
/**
* @return string
*/
public function getUserId()
{
return $this->userId;
}
/**
* @param string $userId
*/
public function setUserId($userId)
{
$this->userId = $userId;
}
/**
* @return string
*/
public function getDeliveryExecutionId()
{
return $this->deliveryExecutionId;
}
/**
* @param string $deliveryExecutionId
*/
public function setDeliveryExecutionId($deliveryExecutionId)
{
$this->deliveryExecutionId = $deliveryExecutionId;
}
/**
* @return string
*/
public function getLinkId()
{
return $this->linkId;
}
/**
* @param string $linkId
*/
public function setLinkId($linkId)
{
$this->linkId = $linkId;
}
/**
* @param $values
* @return KvLTIDeliveryExecutionLink[]
*/
public static function unSerialize($values)
{
$links = [];
$data = $values !== false ? json_decode($values, true) : [];
foreach ($data as $linkData) {
if (isset($linkData['userId'], $linkData['linkId'], $linkData['deliveryExecutionId'])) {
$links[] = new self($linkData['userId'], $linkData['deliveryExecutionId'], $linkData['linkId']);
}
}
return $links;
}
public function jsonSerialize()
{
return [
'userId' => $this->getUserId(),
'deliveryExecutionId' => $this->getDeliveryExecutionId(),
'linkId' => $this->getLinkId(),
];
}
}