Continued with renaming-season:
[core.git] / inc / main / classes / criteria / search / class_SearchCriteria.php
diff --git a/inc/main/classes/criteria/search/class_SearchCriteria.php b/inc/main/classes/criteria/search/class_SearchCriteria.php
deleted file mode 100644 (file)
index 58e0b5e..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-<?php
-// Own namespace
-namespace CoreFramework\Criteria\Search;
-
-// Import framework stuff
-use CoreFramework\Criteria\BaseCriteria;
-use CoreFramework\Criteria\Local\LocalSearchCriteria;
-
-/**
- * Search criteria for e.g. searching in databases. Do not use this class if
- * you are looking for a ship or company, or what ever. Instead use this class
- * for looking in storages like the database.
- *
- * @author             Roland Haeder <webmaster@shipsimu.org>
- * @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 <http://www.gnu.org/licenses/>.
- */
-class SearchCriteria extends BaseCriteria implements LocalSearchCriteria {
-       /**
-        * Criteria to handle
-        */
-       private $criteria = 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__);
-       }
-
-       /**
-        * Create an instance of this class
-        *
-        * @return      $criteriaInstance       An instance of this criteria
-        */
-       public static final function createSearchCriteria () {
-               // Get a new instance
-               $criteriaInstance = new SearchCriteria();
-
-               // Return this instance
-               return $criteriaInstance;
-       }
-
-       /**
-        * 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;
-       }
-
-       /**
-        * "Setter" for limit from a configuration entry
-        *
-        * @param       $configEntry    The configuration entry which hold a number as limit
-        * @return      void
-        */
-       public final function setConfiguredLimit ($configEntry) {
-               // Get the limit from config entry and set it
-               $limit = $this->getConfigInstance()->getConfigEntry($configEntry);
-               $this->setLimit($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;
-       }
-
-       /**
-        * Checks whether the given key/value pair is matching with 'default' and one of 'choice' and
-        * never with in 'exclude'.
-        *
-        * @param       $key                    Key element to check
-        * @param       $value                  Value to check
-        * @param       $separator              Separator for "exploding" $value (default: ',')
-        * @return      $isMatching             Whether the key/value is matching or excluded
-        */
-       public function isCriteriaMatching ($key, $value, $separator = ',') {
-               // $key/$value cannot be array/NULL/bool, value can be NULL but then NULL must be loocked for
-               assert((!is_array($value)) && (!is_bool($value)) && (!is_array($key)) && (!is_null($key)) && (!is_bool($key)));
-
-               // "Explode" value
-               $valueArray = explode($separator, $value);
-
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: key=' . $key . ',value[' . gettype($value) . ']=' . $value . ' - CALLED!');
-
-               // Get 'default' search value
-               $searchDefault = $this->getCriteriaElemnent($key);
-
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaElement(' . $key . ')[' . gettype($searchDefault) . ']=' . $searchDefault);
-
-               // 'default' check
-               $isMatching = (((($searchDefault !== FALSE) && ($searchDefault == $value)) || ((is_null($searchDefault)) && (is_null($value)))) || ($searchDefault === FALSE));
-
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaElement(' . $key . ')[' . gettype($searchDefault) . ']=' . $searchDefault . ',isMatching=' . intval($isMatching));
-
-               // Get 'choice' search value (can be NULL or $separator-separated string)
-               $searchChoice = $this->getCriteriaChoiceElemnent($key);
-
-               // May be FALSE or array
-               assert(($searchChoice === FALSE) || (is_array($searchChoice)));
-
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[' . gettype($searchChoice) . ']=' . print_r($searchChoice, TRUE));
-
-               // 'choice' check
-               if ((is_array($searchChoice)) && (count($valueArray) == 1)) {
-                       // $value is a single-search value, so use in_array()
-                       $isMatching = ((($isMatching === TRUE) || (($searchDefault === FALSE) && (!is_null($value)))) && (in_array($value, $searchChoice)));
-
-                       // Debug message
-                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',value[' . gettype($value) . ']=' . $value . ',isMatching=' . intval($isMatching) . ' - SINGLE-MATCH');
-               } elseif ((is_array($searchChoice)) && (count($valueArray) > 1)) {
-                       // Debug message
-                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',valueArray()=' . count($valueArray) . ',isMatching=' . intval($isMatching));
-
-                       // $value is choice-search value, so check all entries
-                       $isMatching = (($isMatching === TRUE) || (($searchDefault === FALSE) && (!is_null($value))));
-                       $idx = 0;
-                       foreach ($valueArray as $idx => $match) {
-                               // Debug message
-                               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: match=' . $match . ',count(searchChoice)=' . count($searchChoice));
-
-                               // Is it found? (one is okay)
-                               $isMatching = (($isMatching === TRUE) && (in_array($match, $searchChoice)));
-
-                               // Debug message
-                               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: match=' . $match . ',isMatching=' . intval($isMatching));
-                       } // END - foreach
-
-                       // Debug message
-                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',valueArray()=' . count($valueArray) . ',idx=' . $idx . ',isMatching=' . intval($isMatching) . ' - CHOICE-MATCH');
-               } else {
-                       // Choice-match is FALSE
-                       // Debug message
-                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',value[' . gettype($value) . ']=' . $value . ',isMatching=' . intval($isMatching) . ' - FALSE-MATCH');
-               }
-
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',isMatching=' . intval($isMatching));
-
-               // Get 'exclude' search value
-               $searchExclude = $this->getCriteriaExcludeElemnent($key);
-
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: getCriteriaExcludeElement(' . $key . ')[' . gettype($searchExclude) . ']=' . $searchExclude);
-
-               // 'exclude' check
-               $isMatching = (
-                       (
-                               (
-                                       $isMatching === TRUE
-                               ) && (
-                                       $searchExclude === FALSE
-                               )
-                       ) || (
-                               (
-                                       (
-                                               $isMatching === TRUE
-                                       ) && (
-                                               $searchExclude !== FALSE
-                                       ) && (
-                                               $searchExclude !== $value
-                                       )
-                               )
-                       )
-               );
-
-               // Return result
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SEARCH-CRITERIA[' . __METHOD__ . ':' . __LINE__ . ']: key=' . $key . ',value[' . gettype($value) . ']=' . $value . ',isMatching=' . intval($isMatching) . ' - EXIT!');
-               return $isMatching;
-       }
-
-}