X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Fcriteria%2Fclass_BaseCriteria.php;h=c7aff1ed2ee04488262bae124816c5023ef9a00e;hb=498e6b065ce47804bff4e1073592a2cc8e28f8ef;hp=e9f9a853adf7084d8979c983e60dca7a8130e558;hpb=b002c5909aa0f781505dde5414964b0f014cde01;p=core.git diff --git a/framework/main/classes/criteria/class_BaseCriteria.php b/framework/main/classes/criteria/class_BaseCriteria.php index e9f9a853..c7aff1ed 100644 --- a/framework/main/classes/criteria/class_BaseCriteria.php +++ b/framework/main/classes/criteria/class_BaseCriteria.php @@ -3,15 +3,17 @@ namespace Org\Mxchange\CoreFramework\Criteria; // Import framework stuff +use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap; use Org\Mxchange\CoreFramework\Criteria\Search\SearchCriteria; use Org\Mxchange\CoreFramework\Object\BaseFrameworkSystem; +use Org\Mxchange\CoreFramework\Utils\String\StringUtils; /** * A general crtieria class * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2020 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -40,7 +42,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $className Name of the class * @return void */ - protected function __construct ($className) { + protected function __construct (string $className) { // Call parent constructor parent::__construct($className); @@ -51,6 +53,18 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { } // END - foreach } + /** + * Count the criteria, e.g. useful to find out if a database query has no + * limitation (search criteria). + * + * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' + * @return $count Count of all criteria entries + */ + protected final function count (string $criteriaType = 'default') { + // Return it + return $this->countGenericArrayGroup('criteria', $criteriaType); + } + /** * Checks whether given key is set * @@ -58,7 +72,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaKey Criteria key * @return $isSet Whether key is set */ - public function isKeySet ($criteriaType, $criteriaKey) { + public function isKeySet (string $criteriaType, string $criteriaKey) { // Make sure no 'my-' or 'my_' passes this point assert((strpos($criteriaKey, 'my-') === false) && (strpos($criteriaKey, 'my_') === false)); @@ -75,7 +89,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaKey Criteria key * @return $isSet Whether key is set */ - public function isChoiceKeySet ($criteriaKey) { + public function isChoiceKeySet (string $criteriaKey) { // Call inner method return $this->isKeySet('choice', $criteriaKey); } @@ -86,7 +100,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaKey Criteria key * @return $isSet Whether key is set */ - public function isExcludeKeySet ($criteriaKey) { + public function isExcludeKeySet (string $criteriaKey) { // Call inner method return $this->isKeySet('exclude', $criteriaKey); } @@ -97,8 +111,8 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $wrapperConfigEntry Configuration entry which hold the wrapper class' name * @return void */ - public final function setWrapperConfigEntry ($wrapperConfigEntry) { - $this->wrapperConfigEntry = (string) $wrapperConfigEntry; + public final function setWrapperConfigEntry (string $wrapperConfigEntry) { + $this->wrapperConfigEntry = $wrapperConfigEntry; } /** @@ -116,7 +130,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' * @return $criteria */ - public final function getCriteriaArray ($criteriaType = 'default') { + public final function getCriteriaArray (string $criteriaType = 'default') { return $this->getGenericArrayKey('criteria', $criteriaType, 'entries'); } @@ -144,12 +158,12 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaKey Criteria key to unset * @return void */ - public final function unsetCriteria ($criteriaKey) { + public final function unsetCriteria (string $criteriaKey) { // Make sure no 'my-' or 'my_' passes this point assert((strpos($criteriaKey, 'my-') === false) && (strpos($criteriaKey, 'my_') === false)); // Convert dashes to underscore - $criteriaKey = self::convertDashesToUnderscores($criteriaKey); + $criteriaKey = StringUtils::convertDashesToUnderscores($criteriaKey); // "Walk" through all criterias foreach ($this->getGenericArray('criteria') as $criteriaType => $dummy) { @@ -167,18 +181,18 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' * @return void */ - public final function addCriteria ($criteriaKey, $criteriaValue, $criteriaType = 'default') { + public final function addCriteria (string $criteriaKey, $criteriaValue, string $criteriaType = 'default') { // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue . ',criteriaType=' . $criteriaType . ' - CALLED!'); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue . ',criteriaType=' . $criteriaType . ' - CALLED!'); // Make sure no 'my-' or 'my_' passes this point assert((strpos($criteriaKey, 'my-') === false) && (strpos($criteriaKey, 'my_') === false) && (!is_bool($criteriaValue))); // Convert dashes to underscore - $criteriaKey = self::convertDashesToUnderscores($criteriaKey); + $criteriaKey = StringUtils::convertDashesToUnderscores($criteriaKey); // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: criteriaKey=' . $criteriaKey); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA: criteriaKey=' . $criteriaKey); // Append it $this->appendStringToGenericArrayElement('criteria', $criteriaType, 'entries', $criteriaKey, $criteriaValue); @@ -193,18 +207,18 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' * @return void */ - public final function setCriteria ($criteriaKey, $criteriaValue, $criteriaType = 'default') { + public final function setCriteria (string $criteriaKey, $criteriaValue, string $criteriaType = 'default') { // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue . ',criteriaType=' . $criteriaType . ' - CALLED!'); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue . ',criteriaType=' . $criteriaType . ' - CALLED!'); // Make sure no 'my-' or 'my_' passes this point assert((strpos($criteriaKey, 'my-') === false) && (strpos($criteriaKey, 'my_') === false) && (!is_bool($criteriaValue))); // Convert dashes to underscore - $criteriaKey = self::convertDashesToUnderscores($criteriaKey); + $criteriaKey = StringUtils::convertDashesToUnderscores($criteriaKey); // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: criteriaKey=' . $criteriaKey); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA: criteriaKey=' . $criteriaKey); // Set it $this->setStringGenericArrayElement('criteria', $criteriaType, 'entries', $criteriaKey, $criteriaValue); @@ -218,15 +232,15 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaValue Criteria value * @return void */ - public final function addChoiceCriteria ($criteriaKey, $criteriaValue) { + public final function addChoiceCriteria (string $criteriaKey, $criteriaValue) { // Make sure no 'my-' or 'my_' passes this point assert((strpos($criteriaKey, 'my-') === false) && (strpos($criteriaKey, 'my_') === false) && (!is_bool($criteriaValue))); // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue); // Add it - $this->pushValueToGenericArrayElement('criteria', 'choice', 'entries', self::convertDashesToUnderscores($criteriaKey), (string) $criteriaValue); + $this->pushValueToGenericArrayElement('criteria', 'choice', 'entries', StringUtils::convertDashesToUnderscores($criteriaKey), (string) $criteriaValue); } /** @@ -237,7 +251,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaValue Criteria value * @return void */ - public final function addExcludeCriteria ($criteriaKey, $criteriaValue) { + public final function addExcludeCriteria (string $criteriaKey, $criteriaValue) { // Add it with generic method $this->addCriteria($criteriaKey, $criteriaValue, 'exclude'); } @@ -250,9 +264,9 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' * @return void */ - public final function addConfiguredCriteria ($criteriaKey, $configEntry, $criteriaType = 'default') { + public final function addConfiguredCriteria ($criteriaKey, $configEntry, string $criteriaType = 'default') { // Add the configuration entry as a criteria - $value = $this->getConfigInstance()->getConfigEntry($configEntry); + $value = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry($configEntry); $this->addCriteria($criteriaKey, $value, $criteriaType); } @@ -263,18 +277,18 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' * @return $value Whether the value of the critera or false */ - public function getCriteriaElemnent ($criteriaKey, $criteriaType = 'default') { + public function getCriteriaElemnent ($criteriaKey, string $criteriaType = 'default') { // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteriaType=' . $criteriaType . ' - CALLED!'); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA: criteriaKey=' . $criteriaKey . ',criteriaType=' . $criteriaType . ' - CALLED!'); // Make sure no 'my-' or 'my_' passes this point assert((strpos($criteriaKey, 'my-') === false) && (strpos($criteriaKey, 'my_') === false)); // Convert dashes to underscore - $criteriaKey = self::convertDashesToUnderscores($criteriaKey); + $criteriaKey = StringUtils::convertDashesToUnderscores($criteriaKey); // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteria()=' . $this->countGenericArrayGroup('criteria', $criteriaType)); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA: criteriaKey=' . $criteriaKey . ',criteria()=' . $this->countGenericArrayGroup('criteria', $criteriaType)); // Default is not found $value = false; @@ -286,7 +300,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { } // END - if // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: value=' . $value . ' - EXIT!'); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA: value=' . $value . ' - EXIT!'); // Return the value return $value; @@ -298,7 +312,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaKey The requested criteria key * @return $value Whether the value of the critera or false */ - public function getCriteriaChoiceElemnent ($criteriaKey) { + public function getCriteriaChoiceElemnent (string $criteriaKey) { // Call inner method return $this->getCriteriaElemnent($criteriaKey, 'choice'); } @@ -309,7 +323,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaKey The requested criteria key * @return $value Whether the value of the critera or false */ - public function getCriteriaExcludeElemnent ($criteriaKey) { + public function getCriteriaExcludeElemnent (string $criteriaKey) { // Call inner method return $this->getCriteriaElemnent($criteriaKey, 'exclude'); } @@ -321,7 +335,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' * @return $matches Whether the entry matches or not */ - public function ifEntryMatches (array $entryArray, $criteriaType = 'default') { + public function ifEntryMatches (array $entryArray, string $criteriaType = 'default') { // First nothing matches and nothing is counted $matches = false; $counted = 0; @@ -332,7 +346,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { assert((strpos($key, 'my-') === false) && (strpos($key, 'my_') === false)); // Convert dashes to underscore - $key = self::convertDashesToUnderscores($key); + $key = StringUtils::convertDashesToUnderscores($key); // Then walk through all search criteria foreach ($this->getGenericArrayKey('criteria', $criteriaType, 'entries') as $criteriaKey => $criteriaValue) { @@ -340,7 +354,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { assert((strpos($criteriaKey, 'my-') === false) && (strpos($criteriaKey, 'my_') === false) && (!is_bool($criteriaValue))); // Convert dashes to underscore - $criteriaKey = self::convertDashesToUnderscores($criteriaKey); + $criteriaKey = StringUtils::convertDashesToUnderscores($criteriaKey); // Is the element found and does it match? if (($key == $criteriaKey) && ($criteriaValue == $entry)) { @@ -386,7 +400,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' * @return $cacheKey The key suitable for the cache system */ - public function getCacheKey ($onlyKeys = array(), $criteriaType = 'default') { + public function getCacheKey (array $onlyKeys = [], string $criteriaType = 'default') { // Debug message //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput($this->__toString() . ': criteriaType=' . $criteriaType . ',count()=' . $this->countGenericArray('criteria'))); @@ -405,7 +419,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { assert(!is_array($criteriaValue)); // Convert dashes to underscore - $criteriaKey = self::convertDashesToUnderscores($criteriaKey); + $criteriaKey = StringUtils::convertDashesToUnderscores($criteriaKey); // Is the value in array or is $onlyKeys empty? if ((isset($onlyKeys[$criteriaKey])) || (count($onlyKeys) == 0)) { @@ -442,7 +456,7 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $onlyKeys Only use these keys for a cache key * @return $cacheKey The key suitable for the cache system */ - public function getCacheKeyChoice ($onlyKeys = array()) { + public function getCacheKeyChoice (array $onlyKeys = []) { // Call inner method return $this->getCacheKey($onlyKeys, 'choice'); } @@ -453,23 +467,11 @@ abstract class BaseCriteria extends BaseFrameworkSystem implements Criteria { * @param $onlyKeys Only use these keys for a cache key * @return $cacheKey The key suitable for the cache system */ - public function getCacheKeyExclude ($onlyKeys = array()) { + public function getCacheKeyExclude (array $onlyKeys = []) { // Call inner method return $this->getCacheKey($onlyKeys, 'exclude'); } - /** - * Count the criteria, e.g. useful to find out if a database query has no - * limitation (search criteria). - * - * @param $criteriaType Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude' - * @return $count Count of all criteria entries - */ - public final function count ($criteriaType = 'default') { - // Return it - return $this->countGenericArrayGroup('criteria', $criteriaType); - } - /** * Count 'choice' criteria, e.g. useful to find out if a database query * has no limitation (search criteria).