]> git.mxchange.org Git - core.git/blobdiff - framework/main/interfaces/criteria/class_Criteria.php
Continued with renaming-season:
[core.git] / framework / main / interfaces / criteria / class_Criteria.php
diff --git a/framework/main/interfaces/criteria/class_Criteria.php b/framework/main/interfaces/criteria/class_Criteria.php
new file mode 100644 (file)
index 0000000..0506238
--- /dev/null
@@ -0,0 +1,253 @@
+<?php
+// Own namespace
+namespace CoreFramework\Criteria;
+
+// Import framework stuff
+use CoreFramework\Generic\FrameworkInterface;
+
+/**
+ * An interface for criterias
+ *
+ * @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/>.
+ */
+interface Criteria extends FrameworkInterface {
+       /**
+        * Setter for wrapper class name
+        *
+        * @param       $wrapperConfigEntry             Configuration entry which hold the wrapper class' name
+        * @return      void
+        */
+       function setWrapperConfigEntry ($wrapperConfigEntry);
+
+       /**
+        * Getter for wrapper class name
+        *
+        * @return      $wrapperConfigEntry             Configuration entry which hold the wrapper class' name
+        */
+       function getWrapperConfigEntry ();
+
+       /**
+        * Checks whether given key is set
+        *
+        * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
+        * @param       $criteriaKey    Criteria key
+        * @return      $isSet                  Whether key is set
+        */
+       function isKeySet ($criteriaType, $criteriaKey);
+
+       /**
+        * Checks whether given key is set for 'choice' type
+        *
+        * @param       $criteriaKey    Criteria key
+        * @return      $isSet                  Whether key is set
+        */
+       function isChoiceKeySet ($criteriaKey);
+
+       /**
+        * Checks whether given key is set for 'exclude' type
+        *
+        * @param       $criteriaKey    Criteria key
+        * @return      $isSet                  Whether key is set
+        */
+       function isExcludeKeySet ($criteriaKey);
+
+       /**
+        * Getter for criteria array
+        *
+        * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
+        * @return      $criteria
+        */
+       function getCriteriaArray ($criteriaType = 'default');
+
+       /**
+        * Getter for criteria array 'choice' type
+        *
+        * @return      $criteria
+        */
+       function getCriteriaChoiceArray ();
+
+       /**
+        * Getter for criteria array 'exclude' type
+        *
+        * @return      $criteria
+        */
+       function getCriteriaExcludeArray ();
+
+       /**
+        * Unsets a criteria key from all criteria types
+        *
+        * @param       $criteriaKey    Criteria key to unset
+        * @return      void
+        */
+       function unsetCriteria ($criteriaKey);
+
+       /**
+        * Add criteria, this method converts dashes to underscores because dashes
+        * are not valid for criteria keys.
+        *
+        * @param       $criteriaKey    Criteria key
+        * @param       $criteriaValue  Criteria value
+        * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
+        * @return      void
+        */
+       function addCriteria ($criteriaKey, $criteriaValue, $criteriaType = 'default');
+
+       /**
+        * Sets criteria, this method converts dashes to underscores because dashes
+        * are not valid for criteria keys.
+        *
+        * @param       $criteriaKey    Criteria key
+        * @param       $criteriaValue  Criteria value
+        * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
+        * @return      void
+        */
+       function setCriteria ($criteriaKey, $criteriaValue, $criteriaType = 'default');
+
+       /**
+        * Add "choice" criteria, this method converts dashes to underscores because
+        * dashes are not valid for criteria keys.
+        *
+        * @param       $criteriaKey    Criteria key
+        * @param       $criteriaValue  Criteria value
+        * @return      void
+        */
+       function addChoiceCriteria ($criteriaKey, $criteriaValue);
+
+       /**
+        * Add "exclude" criteria, this method converts dashes to underscores because
+        * dashes are not valid for criteria keys.
+        *
+        * @param       $criteriaKey    Criteria key
+        * @param       $criteriaValue  Criteria value
+        * @return      void
+        */
+       function addExcludeCriteria ($criteriaKey, $criteriaValue);
+
+       /**
+        * Add configured criteria
+        *
+        * @param       $criteriaKey    Criteria key
+        * @param       $configEntry    Configuration entry
+        * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
+        * @return      void
+        */
+       function addConfiguredCriteria ($criteriaKey, $configEntry, $criteriaType = 'default');
+
+       /**
+        * Get criteria element or FALSE if not found
+        *
+        * @param       $criteriaKey    The requested criteria key
+        * @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
+        */
+       function getCriteriaElemnent ($criteriaKey, $criteriaType = 'default');
+
+       /**
+        * Get criteria element or FALSE if not found for 'choice' type
+        *
+        * @param       $criteriaKey    The requested criteria key
+        * @return      $value                  Whether the value of the critera or FALSE
+        */
+       function getCriteriaChoiceElemnent ($criteriaKey);
+
+       /**
+        * Get criteria element or FALSE if not found for 'exclude' type
+        *
+        * @param       $criteriaKey    The requested criteria key
+        * @return      $value                  Whether the value of the critera or FALSE
+        */
+       function getCriteriaExcludeElemnent ($criteriaKey);
+
+       /**
+        * Checks whether given array entry matches
+        *
+        * @param       $entryArray             Array with the entries to find
+        * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
+        * @return      $matches                Whether the entry matches or not
+        */
+       function ifEntryMatches (array $entryArray, $criteriaType = 'default');
+
+       /**
+        * Checks whether given array 'choice' entry matches
+        *
+        * @param       $entryArray             Array with the entries to find
+        * @return      $matches                Whether the entry matches or not
+        */
+       function ifChoiceMatches (array $entryArray);
+
+       /**
+        * Checks whether given array 'exclude' entry matches
+        *
+        * @param       $entryArray             Array with the entries to find
+        * @return      $matches                Whether the entry matches or not
+        */
+       function ifExcludeMatches (array $entryArray);
+
+       /**
+        * "Getter" for a cache key
+        *
+        * @param       $onlyKeys       Only use these keys for a cache key
+        * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
+        * @return      $cacheKey       The key suitable for the cache system
+        */
+       function getCacheKey ($onlyKeys = array(), $criteriaType = 'default');
+
+       /**
+        * "Getter" for a cache key ('choice' type)
+        *
+        * @param       $onlyKeys       Only use these keys for a cache key
+        * @return      $cacheKey       The key suitable for the cache system
+        */
+       function getCacheKeyChoice ($onlyKeys = array());
+
+       /**
+        * "Getter" for a cache key ('exclude' type)
+        *
+        * @param       $onlyKeys       Only use these keys for a cache key
+        * @return      $cacheKey       The key suitable for the cache system
+        */
+       function getCacheKeyExclude ($onlyKeys = array());
+
+       /**
+        * 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
+        */
+       function count ($criteriaType = 'default');
+
+       /**
+        * Count 'choice' criteria, e.g. useful to find out if a database query
+        * has no limitation (search criteria).
+        *
+        * @return      $count  Count of all criteria entries
+        */
+       function countChoice ();
+
+       /**
+        * Count 'exclude' criteria, e.g. useful to find out if a database query
+        * has no limitation (search criteria).
+        *
+        * @return      $count  Count of all criteria entries
+        */
+       function countExclude ();
+
+}