Introduced unsetCriteria()
authorRoland Häder <roland@mxchange.org>
Fri, 22 Feb 2013 08:08:13 +0000 (08:08 +0000)
committerRoland Häder <roland@mxchange.org>
Fri, 22 Feb 2013 08:08:13 +0000 (08:08 +0000)
inc/classes/interfaces/criteria/class_Criteria.php
inc/classes/main/criteria/class_BaseCriteria.php
inc/classes/main/database/databases/class_LocalFileDatabase.php

index d2cb532fe074fa4e939f0efbe2986627c5e0f9f6..6f515ec9ea5c27ff4c668c23a63360b45e57804c 100644 (file)
@@ -84,6 +84,14 @@ interface Criteria extends FrameworkInterface {
         */
        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.
index d02c32fca8d75024538929a1fde57d7fec5c93d1..f42dc828175ea65cbb7fbfd9b40122ff7521e114 100644 (file)
@@ -137,6 +137,26 @@ class BaseCriteria extends BaseFrameworkSystem implements Criteria {
                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) && (!is_bool($criteriaValue)));
+
+               // Convert dashes to underscore
+               $criteriaKey = $this->convertDashesToUnderscores($criteriaKey);
+
+               // "Walk" through all criterias
+               foreach ($this->criteria as $criteriaType => $dummy) {
+                       // Remove it
+                       unset($this->criteria[$criteriaType][$criteriaKey]);
+               } // END - foreach
+       }
+
        /**
         * Add criteria, this method converts dashes to underscores because dashes
         * are not valid for criteria keys.
index f49a9f16bdae6bdd546fc538628007097558431c..b3f018319c74050e5d3772f497553eab024fdfb3 100644 (file)
@@ -164,7 +164,7 @@ class LocalFileDatabase extends BaseDatabaseBackend implements DatabaseBackendIn
         */
        private function getDataArrayFromFile ($fqfn) {
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('DATABASE: Reading elements from database file ' . $fqfn . ' ...');
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('DATABASE: Reading elements from database file ' . $fqfn . ' ...');
 
                // Init compressed data
                $compressedData = $this->getFileIoInstance()->loadFileContents($fqfn);
@@ -180,8 +180,8 @@ class LocalFileDatabase extends BaseDatabaseBackend implements DatabaseBackendIn
                $dataArray = unserialize($serializedData);
 
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('DATABASE: Read ' . count($dataArray) . ' elements from database file ' . $fqfn . '.');
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('DATABASE: dataArray=' . print_r($dataArray, TRUE));
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('DATABASE: Read ' . count($dataArray) . ' elements from database file ' . $fqfn . '.');
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('DATABASE: dataArray=' . print_r($dataArray, TRUE));
 
                // Finally return it
                return $dataArray;