X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fcriteria%2Fclass_SearchCriteria.php;fp=inc%2Fclasses%2Fmain%2Fcriteria%2Fclass_SearchCriteria.php;h=0000000000000000000000000000000000000000;hb=7150c6d1a1e3c91d3cfd2e732b26bbe9f0dc4f57;hp=faeb8be698188dfb71d383405a4c2bee9b24d3ea;hpb=12dbc1af8f0bc2981711b17c7c955f270c440b35;p=hub.git diff --git a/inc/classes/main/criteria/class_SearchCriteria.php b/inc/classes/main/criteria/class_SearchCriteria.php deleted file mode 100644 index faeb8be69..000000000 --- a/inc/classes/main/criteria/class_SearchCriteria.php +++ /dev/null @@ -1,213 +0,0 @@ - - * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software - * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.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 . - */ -class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria { - /** - * Criteria to handle - */ - private $searchCriteria = array(); - - /** - * Limitation for the search - */ - private $limit = 0; - - /** - * Skip these entries before using them - */ - private $skip = 0; - - /** - * Protected constructor - * - * @return void - */ - protected function __construct () { - // Call parent constructor - parent::__construct(__CLASS__); - - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); - } - - /** - * Create an instance of this class - * - * @return $criteriaInstance An instance of this criteria - */ - public final static function createSearchCriteria () { - // Get a new instance - $criteriaInstance = new SearchCriteria(); - - // Return this instance - return $criteriaInstance; - } - - /** - * Add criteria - * - * @param $criteriaKey Criteria key - * @param $criteriaValue Criteria value - * @return void - */ - public final function addCriteria ($criteriaKey, $criteriaValue) { - $this->searchCriteria[(string)$criteriaKey] = (string)$criteriaValue; - } - - /** - * Add configured criteria - * - * @param $criteriaKey Criteria key - * @param $configEntry Configuration entry - * @return void - */ - public final function addConfiguredCriteria ($criteriaKey, $configEntry) { - // Add the configuration entry as a criteria - $value = $this->getConfigInstance()->readConfig($configEntry); - $this->addCriteria($criteriaKey, $value); - } - - /** - * Setter for limit - * - * @param $limit Search limit - * @return void - * @todo Find a nice casting here. (int) allows until and including 32766. - */ - public final function setLimit ($limit) { - $this->limit = $limit; - } - - /** - * Getter for limit - * - * @return $limit Search limit - */ - public final function getLimit () { - return $this->limit; - } - - /** - * Setter for skip - * - * @param $skip Search skip - * @return void - * @todo Find a nice casting here. (int) allows until and including 32766. - */ - public final function setSkip ($skip) { - $this->skip = $skip; - } - - /** - * Getter for skip - * - * @return $skip Search skip - */ - public final function getSkip () { - return $this->skip; - } - - /** - * "Getter" for a cache key - * - * @return $cacheKey The key suitable for the cache system - */ - public function getCacheKey () { - // Initialize the key - $cacheKey = ""; - - // Now walk through all criterias - foreach ($this->searchCriteria as $criteriaKey => $criteriaValue) { - // Add the value URL encoded to avoid any trouble with special characters - $cacheKey .= sprintf("%s=%s;", - $criteriaKey, - urlencode($criteriaValue) - ); - } - - // Add limit and skip values - $cacheKey .= sprintf("%%limit%%=%s;%%skip%%=%s", - $this->limit, - $this->skip - ); - - // Return the cache key - return $cacheKey; - } - - /** - * Get criteria element or null if not found - * - * @param $criteria The criteria we want to have - * @return $value Wether the value of the critera or null - */ - public function getCriteriaElemnent ($criteria) { - // Default is not found - $value = null; - - // Is the criteria there? - if (isset($this->searchCriteria[$criteria])) { - // Then use it - $value = $this->searchCriteria[$criteria]; - } - - // Return the value - return $value; - } - - /** - * Checks wether given array entry matches - * - * @param $entryArray Array with the entries to find - * @return $matches Wether the entry matches or not - */ - public function ifEntryMatches (array $entryArray) { - // First nothing matches and nothing is counted - $matches = false; - $counted = 0; - - // Walk through all entries - foreach ($entryArray as $key => $entry) { - // Then walk through all search criteria - foreach ($this->searchCriteria as $criteriaKey => $criteriaValue) { - // Is the element found and does it match? - if (($key == $criteriaKey) && ($criteriaValue == $entry)) { - // Then count this one up - $counted++; - } // END - if - } // END - foreach - } // END - foreach - - // Now check if expected criteria counts match - $matches = ($counted == count($this->searchCriteria)); - - // Return the result - return $matches; - } -} - -// [EOF] -?>