<?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() { } }