X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fcriteria%2Fclass_SearchCriteria.php;h=c95d853bfd07b67bbc7f518317300b1b3208cfe0;hb=a771e8625d659bffda3dc7dd929b5fcc877e9328;hp=a0d8003edbedf1398ccfaa534b322cc15a9d8b9e;hpb=3cdaf6ce082d9e7a20cbeb06d525c28b3dd95c15;p=shipsimu.git diff --git a/inc/classes/main/criteria/class_SearchCriteria.php b/inc/classes/main/criteria/class_SearchCriteria.php index a0d8003..c95d853 100644 --- a/inc/classes/main/criteria/class_SearchCriteria.php +++ b/inc/classes/main/criteria/class_SearchCriteria.php @@ -5,10 +5,10 @@ * for looking in storages like the database. * * @author Roland Haeder - * @version 0.3.0 - * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @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.mxchange.org + * @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 @@ -21,7 +21,7 @@ * 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 . + * along with this program. If not, see . */ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria { /** @@ -48,12 +48,6 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria // Call parent constructor parent::__construct(__CLASS__); - // Set part description - $this->setObjectDescription("Search criteria class"); - - // Create unique ID number - $this->createUniqueID(); - // Clean up a little $this->removeNumberFormaters(); $this->removeSystemArray(); @@ -73,7 +67,7 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria } /** - * Add extra criteria + * Add criteria * * @param $criteriaKey Criteria key * @param $criteriaValue Criteria value @@ -83,6 +77,19 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria $this->searchCriteria[$criteriaKey] = $criteriaValue; } + /** + * Add configured criteria + * + * @param $criteriaKey Criteria key + * @param $configEntry Configuration entry + * @return void + */ + public function addConfiguredCriteria ($criteriaKey, $configEntry) { + // Add the configuration entry as a criteria + $value = $this->getConfigInstance()->readConfig($configEntry); + $this->addCriteria($criteriaKey, $value); + } + /** * Setter for limit * @@ -93,6 +100,15 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria $this->limit = $limit; } + /** + * Getter for limit + * + * @return $limit Search limit + */ + public final function getLimit () { + return $this->limit; + } + /** * Setter for skip * @@ -103,6 +119,15 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria $this->skip = $skip; } + /** + * Getter for skip + * + * @return $skip Search skip + */ + public final function getSkip () { + return $this->skip; + } + /** * "Getter" for a cache key * @@ -130,6 +155,56 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria // 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 the criteria matches + $matches = ($counted == count($this->searchCriteria)); + + // Return the result + return $matches; + } } // [EOF]