* @version 0.0.0 * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * * 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, either version 3 of the License, or * (at your option) any later version. * * 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, see . */ interface DatabaseConnector extends FrameworkDatabase { /** * Get an instance of this class (Singleton) * * @return $selfInstance An instance of this class */ static function getSelfInstance (); /** * Setter for database connection * * @param $login Login to database * @param $pass Password (plain) * @param $dbase Database to choose * @param $host Hostname to use * @return void */ function setConnectionData ($login, $pass, $dbase, $host='localhost'); /** * Getter for connection data * * @return $connectData Connection data stored with this clas */ function getConnectionData (); /** * Setter for the real database layer * @param $dbLayer An instance of the real database layer * @return void */ function setDatabaseLayer (DatabaseBackend $dbLayer); /** * Getter for index key * * @return $indexKey Index key */ function getIndexKey (); /** * Runs a 'select' statement on the database layer with given table name * and criteria. If this doesn't fail the result will be returned * * @param $tableName Name of the 'table' we shall query * @param $criteriaInstance An instance of a Criteria class * @return $result The result as an array */ function doSelectByTableCriteria ($tableName, Criteria $criteriaInstance); /** * Getter for last exception * * @return $exceptionInstance Last thrown exception */ function getLastException (); /** * 'Inserts' a data set instance into a local file database folder * * @param $dataSetInstance A storeable data set * @return void */ function queryInsertDataSet (StoreableCriteria $dataSetInstance); /** * 'Updates' a data set instance with a database layer * * @param $dataSetInstance A storeable data set * @return void */ function queryUpdateDataSet (StoreableCriteria $dataSetInstance); /** * Getter for primary key column of specified table name * * @param $tableName Name of table we need the primary key column from * @return $primaryKey Primary key column of requested table */ function getPrimaryKeyOfTable ($tableName); /** * Removes non-public data from given array. * * @param $data An array with possible non-public data that needs to be removed. * @return $data A cleaned up array with only public data. */ function removeNonPublicDataFromArray (array $data); /** * Counts total rows of given table * * @param $tableName Table name * @return $count Total rows of given table */ function countTotalRows($tableName); }