131 lines
3.2 KiB
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(),
|
|
];
|
|
}
|
|
}
|