*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
*/
interface Criteria extends FrameworkInterface {
/**
- * Add criteria
+ * 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);
+ function addCriteria ($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);
+ 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 ();
}
-//
+// [EOF]
?>