tao-test/app/tao/scripts/class.TaoRDFImport.php

118 lines
3.9 KiB
PHP
Raw Normal View History

2022-08-29 20:14:13 +02:00
<?php
use oat\tao\model\import\ImportRdf;
/**
* 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) 2002-2008 (original work) Public Research Centre Henri Tudor & University of Luxembourg (under the project TAO & TAO2);
* 2008-2010 (update and modification) Deutsche Institut für Internationale Pädagogische Forschung (under the project TAO-TRANSFER);
* 2009-2012 (update and modification) Public Research Centre Henri Tudor (under the project TAO-SUSTAIN & TAO-DEV);
*
*/
/**
* Short description of class tao_scripts_TaoRDFImport
*
* @access public
* @author Jerome Bogaerts, <jerome.bogaerts@tudor.lu>
* @package tao
*/
class tao_scripts_TaoRDFImport extends tao_scripts_Runner
{
// --- ASSOCIATIONS ---
// --- ATTRIBUTES ---
// --- OPERATIONS ---
/**
* Short description of method preRun
*
* @access public
* @author Jerome Bogaerts, <jerome.bogaerts@tudor.lu>
* @return void
*/
public function preRun()
{
$this->options = ['verbose' => false,
'user' => null,
'password' => null,
'model' => null,
'input' => null];
$this->options = array_merge($this->options, $this->parameters);
// the 'file' param is checked by the parent implementation.
if ($this->options['user'] == null) {
$this->err("Please provide a TAO 'user'.", true);
} elseif ($this->options['password'] == null) {
$this->err("Please provide a TAO 'password'.", true);
} elseif ($this->options['input'] == null) {
$this->err("Please provide a RDF 'input' file.", true);
}
}
/**
* Short description of method run
*
* @access public
* @author Jerome Bogaerts, <jerome.bogaerts@tudor.lu>
* @return void
*/
public function run()
{
$userService = tao_models_classes_UserService::singleton();
$this->outVerbose("Connecting to TAO as '" . $this->options['user'] . "' ...");
if ($userService->loginUser($this->options['user'], $this->options['password'])) {
$this->outVerbose("Connected to TAO as '" . $this->options['user'] . "'.");
$filename = $this->options['input'];
$action = new ImportRdf();
$params = [$filename];
if (!empty($this->options['model'])) {
$nameSpace = common_ext_NamespaceManager::singleton()->getNamespace($this->options['model']);
$params[] = $nameSpace->getModelId();
}
$report = $action->__invoke($params);
$string = helpers_Report::renderToCommandline($report);
foreach (explode(PHP_EOL, $string) as $line) {
$this->out($line);
}
} else {
$this->err("Unable to connect to TAO as '" . $this->options['user'] . "'.", true);
}
}
/**
* Short description of method postRun
*
* @access public
* @author Jerome Bogaerts, <jerome.bogaerts@tudor.lu>
* @return void
*/
public function postRun()
{
}
}