From de9b30490eb2c75107c7677ab527d35112fb7c98 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 24 May 2016 11:52:44 +0200 Subject: Move public search namespace to PSR-4 --- lib/public/Search/PagedProvider.php | 67 +++++++++++++++++++++++++++ lib/public/Search/Provider.php | 90 +++++++++++++++++++++++++++++++++++++ lib/public/Search/Result.php | 76 +++++++++++++++++++++++++++++++ lib/public/search/pagedprovider.php | 67 --------------------------- lib/public/search/provider.php | 90 ------------------------------------- lib/public/search/result.php | 76 ------------------------------- 6 files changed, 233 insertions(+), 233 deletions(-) create mode 100644 lib/public/Search/PagedProvider.php create mode 100644 lib/public/Search/Provider.php create mode 100644 lib/public/Search/Result.php delete mode 100644 lib/public/search/pagedprovider.php delete mode 100644 lib/public/search/provider.php delete mode 100644 lib/public/search/result.php (limited to 'lib/public') diff --git a/lib/public/Search/PagedProvider.php b/lib/public/Search/PagedProvider.php new file mode 100644 index 00000000000..80a2896f73f --- /dev/null +++ b/lib/public/Search/PagedProvider.php @@ -0,0 +1,67 @@ + + * @author Jörn Friedrich Dreyer + * @author Morris Jobke + * + * @copyright Copyright (c) 2016, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OCP\Search; + +/** + * Provides a template for search functionality throughout ownCloud; + * @since 8.0.0 + */ +abstract class PagedProvider extends Provider { + + /** + * show all results + * @since 8.0.0 + */ + const SIZE_ALL = 0; + + /** + * Constructor + * @param array $options + * @since 8.0.0 + */ + public function __construct($options) { + $this->options = $options; + } + + /** + * Search for $query + * @param string $query + * @return array An array of OCP\Search\Result's + * @since 8.0.0 + */ + public function search($query) { + // old apps might assume they get all results, so we use SIZE_ALL + $this->searchPaged($query, 1, self::SIZE_ALL); + } + + /** + * Search for $query + * @param string $query + * @param int $page pages start at page 1 + * @param int $size 0 = SIZE_ALL + * @return array An array of OCP\Search\Result's + * @since 8.0.0 + */ + abstract public function searchPaged($query, $page, $size); +} diff --git a/lib/public/Search/Provider.php b/lib/public/Search/Provider.php new file mode 100644 index 00000000000..9bcbe36ef7a --- /dev/null +++ b/lib/public/Search/Provider.php @@ -0,0 +1,90 @@ + + * @author Bart Visscher + * @author Jakob Sack + * @author Jörn Friedrich Dreyer + * @author Morris Jobke + * + * @copyright Copyright (c) 2016, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OCP\Search; + +/** + * Provides a template for search functionality throughout ownCloud; + * @since 7.0.0 + */ +abstract class Provider { + + /** + * @since 8.0.0 + */ + const OPTION_APPS = 'apps'; + + /** + * List of options + * @var array + * @since 7.0.0 + */ + protected $options; + + /** + * Constructor + * @param array $options as key => value + * @since 7.0.0 - default value for $options was added in 8.0.0 + */ + public function __construct($options = array()) { + $this->options = $options; + } + + /** + * get a value from the options array or null + * @param string $key + * @return mixed + * @since 8.0.0 + */ + public function getOption($key) { + if (is_array($this->options) && isset($this->options[$key])) { + return $this->options[$key]; + } else { + return null; + } + } + + /** + * checks if the given apps and the apps this provider has results for intersect + * returns true if the given array is empty (all apps) + * or if this provider does not have a list of apps it provides results for (legacy search providers) + * or if the two above arrays have elements in common (intersect) + * @param string[] $apps + * @return bool + * @since 8.0.0 + */ + public function providesResultsFor(array $apps = array()) { + $forApps = $this->getOption(self::OPTION_APPS); + return empty($apps) || empty($forApps) || array_intersect($forApps, $apps); + } + + /** + * Search for $query + * @param string $query + * @return array An array of OCP\Search\Result's + * @since 7.0.0 + */ + abstract public function search($query); +} diff --git a/lib/public/Search/Result.php b/lib/public/Search/Result.php new file mode 100644 index 00000000000..e90c2619032 --- /dev/null +++ b/lib/public/Search/Result.php @@ -0,0 +1,76 @@ + + * @author Jakob Sack + * @author Jörn Friedrich Dreyer + * @author Morris Jobke + * + * @copyright Copyright (c) 2016, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OCP\Search; + +/** + * The generic result of a search + * @since 7.0.0 + */ +class Result { + + /** + * A unique identifier for the result, usually given as the item ID in its + * corresponding application. + * @var string + * @since 7.0.0 + */ + public $id; + + /** + * The name of the item returned; this will be displayed in the search + * results. + * @var string + * @since 7.0.0 + */ + public $name; + + /** + * URL to the application item. + * @var string + * @since 7.0.0 + */ + public $link; + + /** + * The type of search result returned; for consistency, name this the same + * as the class name (e.g. \OC\Search\File -> 'file') in lowercase. + * @var string + * @since 7.0.0 + */ + public $type = 'generic'; + + /** + * Create a new search result + * @param string $id unique identifier from application: '[app_name]/[item_identifier_in_app]' + * @param string $name displayed text of result + * @param string $link URL to the result within its app + * @since 7.0.0 + */ + public function __construct($id = null, $name = null, $link = null) { + $this->id = $id; + $this->name = $name; + $this->link = $link; + } +} diff --git a/lib/public/search/pagedprovider.php b/lib/public/search/pagedprovider.php deleted file mode 100644 index 80a2896f73f..00000000000 --- a/lib/public/search/pagedprovider.php +++ /dev/null @@ -1,67 +0,0 @@ - - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * - * @copyright Copyright (c) 2016, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCP\Search; - -/** - * Provides a template for search functionality throughout ownCloud; - * @since 8.0.0 - */ -abstract class PagedProvider extends Provider { - - /** - * show all results - * @since 8.0.0 - */ - const SIZE_ALL = 0; - - /** - * Constructor - * @param array $options - * @since 8.0.0 - */ - public function __construct($options) { - $this->options = $options; - } - - /** - * Search for $query - * @param string $query - * @return array An array of OCP\Search\Result's - * @since 8.0.0 - */ - public function search($query) { - // old apps might assume they get all results, so we use SIZE_ALL - $this->searchPaged($query, 1, self::SIZE_ALL); - } - - /** - * Search for $query - * @param string $query - * @param int $page pages start at page 1 - * @param int $size 0 = SIZE_ALL - * @return array An array of OCP\Search\Result's - * @since 8.0.0 - */ - abstract public function searchPaged($query, $page, $size); -} diff --git a/lib/public/search/provider.php b/lib/public/search/provider.php deleted file mode 100644 index 9bcbe36ef7a..00000000000 --- a/lib/public/search/provider.php +++ /dev/null @@ -1,90 +0,0 @@ - - * @author Bart Visscher - * @author Jakob Sack - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * - * @copyright Copyright (c) 2016, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCP\Search; - -/** - * Provides a template for search functionality throughout ownCloud; - * @since 7.0.0 - */ -abstract class Provider { - - /** - * @since 8.0.0 - */ - const OPTION_APPS = 'apps'; - - /** - * List of options - * @var array - * @since 7.0.0 - */ - protected $options; - - /** - * Constructor - * @param array $options as key => value - * @since 7.0.0 - default value for $options was added in 8.0.0 - */ - public function __construct($options = array()) { - $this->options = $options; - } - - /** - * get a value from the options array or null - * @param string $key - * @return mixed - * @since 8.0.0 - */ - public function getOption($key) { - if (is_array($this->options) && isset($this->options[$key])) { - return $this->options[$key]; - } else { - return null; - } - } - - /** - * checks if the given apps and the apps this provider has results for intersect - * returns true if the given array is empty (all apps) - * or if this provider does not have a list of apps it provides results for (legacy search providers) - * or if the two above arrays have elements in common (intersect) - * @param string[] $apps - * @return bool - * @since 8.0.0 - */ - public function providesResultsFor(array $apps = array()) { - $forApps = $this->getOption(self::OPTION_APPS); - return empty($apps) || empty($forApps) || array_intersect($forApps, $apps); - } - - /** - * Search for $query - * @param string $query - * @return array An array of OCP\Search\Result's - * @since 7.0.0 - */ - abstract public function search($query); -} diff --git a/lib/public/search/result.php b/lib/public/search/result.php deleted file mode 100644 index e90c2619032..00000000000 --- a/lib/public/search/result.php +++ /dev/null @@ -1,76 +0,0 @@ - - * @author Jakob Sack - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * - * @copyright Copyright (c) 2016, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCP\Search; - -/** - * The generic result of a search - * @since 7.0.0 - */ -class Result { - - /** - * A unique identifier for the result, usually given as the item ID in its - * corresponding application. - * @var string - * @since 7.0.0 - */ - public $id; - - /** - * The name of the item returned; this will be displayed in the search - * results. - * @var string - * @since 7.0.0 - */ - public $name; - - /** - * URL to the application item. - * @var string - * @since 7.0.0 - */ - public $link; - - /** - * The type of search result returned; for consistency, name this the same - * as the class name (e.g. \OC\Search\File -> 'file') in lowercase. - * @var string - * @since 7.0.0 - */ - public $type = 'generic'; - - /** - * Create a new search result - * @param string $id unique identifier from application: '[app_name]/[item_identifier_in_app]' - * @param string $name displayed text of result - * @param string $link URL to the result within its app - * @since 7.0.0 - */ - public function __construct($id = null, $name = null, $link = null) { - $this->id = $id; - $this->name = $name; - $this->link = $link; - } -} -- cgit v1.2.3