* @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 DatabaseBackend extends FrameworkDatabase { /** * Getter for last read file * * @return $lastFile The last read file's name with full path */ function getLastFile (); /** * Getter for last read file's content as an array * * @return $lastContent The array with elements 'header' and 'data'. */ function getLastContents (); /** * Getter for file extension * * @return $fileExtension The array with elements 'header' and 'data'. */ function getFileExtension (); /** * Getter for index key * * @return $indexKey Index key */ function getIndexKey (); /** * Makes sure that the database connection is alive * * @return void * @todo Do some checks on the database directory and files here */ function connectToDatabase (); /** * Starts a SELECT query on the database by given return type, table name * and search criteria * * @param $tableName Name of the database table * @param $searchInstance Local search criteria class * @return $resultData Result data of the query * @throws UnsupportedCriteriaException If the criteria is unsupported * @throws SqlException If an 'SQL error' occurs */ function querySelect ($tableName, LocalSearchCriteria $searchInstance); /** * "Inserts" a data set instance into a local file database folder * * @param $dataSetInstance A storeable data set * @return void * @throws SqlException If an SQL error occurs */ function queryInsertDataSet (StoreableCriteria $dataSetInstance); /** * "Updates" a data set instance with a database layer * * @param $dataSetInstance A storeable data set * @return void * @throws SqlException If an SQL error occurs */ function queryUpdateDataSet (StoreableCriteria $dataSetInstance); /** * Getter for primary key of specified table or if not found null will be * returned. This must be database-specific. * * @param $tableName Name of the table we need the primary key from * @return $primaryKey Primary key column of the given table */ function getPrimaryKeyOfTable ($tableName); /** * Removes non-data from given array. * * @param $data An array with possible non-data that needs to be removed. * @return $data A cleaned up array with only data. * @todo Add more generic non-data for removal */ function removeNonPublicDataFromArray (array $data); /** * Counts total rows of given table * * @param $tableName Table name * @return $count Total rows of given table */ function countTotalRows($tableName); }