*/
private $wrapperConfigEntry = '';
- /**
- * Criteria to handle
- */
- private $criteria = array(
- // Default
- 'default' => array(),
- // Choice
- 'choice' => array(),
- // .. and exclude
- 'exclude' => array(),
- );
-
/**
* Protected constructor
*
assert((strpos($criteriaKey, 'my-') === FALSE) && (strpos($criteriaKey, 'my_') === FALSE));
// Determine it
- $isSet = isset($this->criteria[$criteriaType][$criteriaKey]);
+ $isSet = $this->isGenericArrayKeySet('criteria', $criteriaType, $criteriaKey);
// Return it
return $isSet;
* @return $criteria
*/
public final function getCriteriaArray ($criteriaType = 'default') {
- return $this->criteria[$criteriaType];
+ return $this->getGenericSubArray('criteria', $criteriaType);
}
/**
return $this->getCriteriaArray('exclude');
}
+ /**
+ * Unsets a criteria key from all criteria types
+ *
+ * @param $criteriaKey Criteria key to unset
+ * @return void
+ */
+ public final function unsetCriteria ($criteriaKey) {
+ // Make sure no 'my-' or 'my_' passes this point
+ assert((strpos($criteriaKey, 'my-') === FALSE) && (strpos($criteriaKey, 'my_') === FALSE));
+
+ // Convert dashes to underscore
+ $criteriaKey = $this->convertDashesToUnderscores($criteriaKey);
+
+ // "Walk" through all criterias
+ foreach ($this->getGenericArray('criteria') as $criteriaType => $dummy) {
+ // Remove it
+ $this->unsetGenericArrayElement('criteria', $criteriaType, $criteriaKey);
+ } // END - foreach
+ }
+
/**
* Add criteria, this method converts dashes to underscores because dashes
* are not valid for criteria keys.
// Debug message
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA[' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue);
- // Is it already there?
- if ($this->isKeySet($criteriaType, $criteriaKey)) {
- // Append it
- $this->criteria[$criteriaType][$criteriaKey] .= ',' . (string) $criteriaValue;
- } else {
- // Add it
- $this->criteria[$criteriaType][$criteriaKey] = (string) $criteriaValue;
- }
+ // Append it
+ $this->appendStringToGenericArrayElement('criteria', $criteriaType, $criteriaKey, $criteriaValue);
}
/**
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($criteriaType) . '(' . $this->__toString() . ')-CRITERIA[' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteriaValue=' . $criteriaValue);
// Add it
- $this->criteria['choice'][$this->convertDashesToUnderscores($criteriaKey)][] = (string) $criteriaValue;
+ $this->pushValueToGenericArrayElement('criteria', 'choice', $this->convertDashesToUnderscores($criteriaKey), (string) $criteriaValue);
}
/**
$criteriaKey = $this->convertDashesToUnderscores($criteriaKey);
// Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA[' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteria()=' . count($this->criteria[$criteriaType]));
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($criteriaType) . '-CRITERIA[' . __LINE__ . ']: criteriaKey=' . $criteriaKey . ',criteria()=' . $this->countGenericArrayGroup('criteria', $criteriaType)));
// Default is not found
$value = FALSE;
// Is the criteria there?
if ($this->isKeySet($criteriaType, $criteriaKey)) {
// Then use it
- $value = $this->criteria[$criteriaType][$criteriaKey];
+ $value = $this->getGenericArrayKey('criteria', $criteriaType, $criteriaKey);
} // END - if
// Return the value
*/
public function ifEntryMatches (array $entryArray, $criteriaType = 'default') {
// First nothing matches and nothing is counted
- $matches = false;
+ $matches = FALSE;
$counted = 0;
// Walk through all entries
$key = $this->convertDashesToUnderscores($key);
// Then walk through all search criteria
- foreach ($this->criteria[$criteriaType] as $criteriaKey => $criteriaValue) {
+ foreach ($this->getGenericSubArray('criteria', $criteriaType) as $criteriaKey => $criteriaValue) {
// Make sure no 'my-' or 'my_' passes this point
assert((strpos($criteriaKey, 'my-') === FALSE) && (strpos($criteriaKey, 'my_') === FALSE) && (!is_bool($criteriaValue)));
} // END - foreach
// Now check if expected criteria counts match
- $matches = ($counted == count($this->criteria[$criteriaType]));
+ $matches = ($counted == $this->countGenericArrayGroup('criteria', $criteriaType)));
// Return the result
return $matches;
*/
public function getCacheKey ($onlyKeys = array(), $criteriaType = 'default') {
// Debug message
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . ': criteriaType=' . $criteriaType . ',count()=' . count($this->criteria));
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . ': criteriaType=' . $criteriaType . ',count()=' . $this->countGenericArray('criteria')));
// Make sure the criteria is there
- assert((isset($this->criteria[$criteriaType])) && (is_array($this->criteria[$criteriaType])));
+ assert($this->isValidGenericArrayGroup('criteria', $criteriaType));
// Initialize the key
$cacheKey = '';
// Now walk through all criterias
- foreach ($this->criteria[$criteriaType] as $criteriaKey => $criteriaValue) {
+ foreach ($this->getGenericSubArray('criteria', $criteriaType) as $criteriaKey => $criteriaValue) {
// Make sure no 'my-' or 'my_' passes this point
assert((strpos($criteriaKey, 'my-') === FALSE) && (strpos($criteriaKey, 'my_') === FALSE) && (!is_bool($criteriaValue)));
*/
public final function count ($criteriaType = 'default') {
// Return it
- return count($this->criteria[$criteriaType]);
+ return $this->countGenericArrayGroup('criteria', $criteriaType));
}
/**