Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 12
CRAP
0.00% covered (danger)
0.00%
0 / 1
PicModel
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 12
156
0.00% covered (danger)
0.00%
0 / 1
 getId
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getLabel
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getNamespace
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getDefinitionFiles
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 getManifestName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 createDataObject
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 getRegistry
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 getValidator
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getDirectoryParser
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 getPackageParser
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 getExporter
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getQtiElementClassName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3/**
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; under version 2
7 * of the License (non-upgradable).
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 *
18 * Copyright (c) 2016 (original work) Open Assessment Technologies SA;
19 */
20
21namespace oat\qtiItemPic\model;
22
23use oat\oatbox\PhpSerializeStateless;
24use oat\oatbox\service\ServiceManager;
25use oat\qtiItemPic\model\export\OatPicExporter;
26use oat\qtiItemPic\model\portableElement\dataObject\PicDataObject;
27use oat\qtiItemPic\model\portableElement\parser\PicDirectoryParser;
28use oat\qtiItemPic\model\portableElement\parser\PicPackagerParser;
29use oat\qtiItemPic\model\portableElement\storage\PicRegistry;
30use oat\qtiItemPic\model\portableElement\validator\PicValidator;
31use oat\taoQtiItem\model\Export\AbstractQTIItemExporter;
32use oat\taoQtiItem\model\portableElement\element\PortableElementObject;
33use oat\taoQtiItem\model\portableElement\model\PortableElementModel;
34use oat\taoQtiItem\model\portableElement\storage\PortableElementRegistry;
35
36class PicModel implements PortableElementModel
37{
38    use PhpSerializeStateless;
39
40    public const PIC_IDENTIFIER = 'PIC';
41
42    public const PCI_LABEL = 'OAT PIC';
43
44    public const PIC_MANIFEST = 'picCreator.json';
45
46    public const PIC_ENGINE = 'picCreator.js';
47
48    public const PCI_NAMESPACE = 'http://www.imsglobal.org/xsd/portableInfoControl';
49
50    public function getId()
51    {
52        return self::PIC_IDENTIFIER;
53    }
54
55    public function getLabel()
56    {
57        return self::PCI_LABEL;
58    }
59
60    public function getNamespace()
61    {
62        return self::PCI_NAMESPACE;
63    }
64
65    public function getDefinitionFiles()
66    {
67        return [
68            self::PIC_MANIFEST,
69            self::PIC_ENGINE,
70        ];
71    }
72
73    public function getManifestName()
74    {
75        return self::PIC_MANIFEST;
76    }
77
78    public function createDataObject(array $data)
79    {
80        $object = (new PicDataObject())->exchangeArray($data);
81        $object->setModel($this);
82
83        return $object;
84    }
85
86    public function getRegistry()
87    {
88        /** @var PortableElementRegistry $registry */
89        $registry = PicRegistry::getRegistry();
90        $registry->setServiceLocator(ServiceManager::getServiceManager());
91        $registry->setModel($this);
92
93        return $registry;
94    }
95
96    public function getValidator()
97    {
98        return new PicValidator();
99    }
100
101    public function getDirectoryParser()
102    {
103        $directoryParser = new PicDirectoryParser();
104        $directoryParser->setModel($this);
105
106        return $directoryParser;
107    }
108
109    public function getPackageParser()
110    {
111        $packageParser = new PicPackagerParser();
112        $packageParser->setModel($this);
113
114        return $packageParser;
115    }
116
117    public function getExporter(PortableElementObject $dataObject, AbstractQTIItemExporter $qtiItemExporter)
118    {
119        return new OatPicExporter($dataObject, $qtiItemExporter);
120    }
121
122    public function getQtiElementClassName()
123    {
124        return 'oat\taoQtiItem\model\qti\PortableInfoControl';
125    }
126}