Code syncronized with shipsimu code base
[mailer.git] / inc / classes / main / criteria / class_SearchCriteria.php
index fc5b1addd3757b37530196a67e8393841b05a966..b9f27db7b08859e83633d6ee3bec2ed3e0765f52 100644 (file)
@@ -6,7 +6,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, this is free software
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  *
@@ -21,7 +21,7 @@
  * 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/>.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria {
        /**
@@ -48,12 +48,6 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria
                // Call parent constructor
                parent::__construct(__CLASS__);
 
-               // Set part description
-               $this->setObjectDescription("Search criteria class");
-
-               // Create unique ID number
-               $this->generateUniqueId();
-
                // Clean up a little
                $this->removeNumberFormaters();
                $this->removeSystemArray();
@@ -109,7 +103,6 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria
        /**
         * Getter for limit
         *
-        * @param       
         * @return      $limit  Search limit
         */
        public final function getLimit () {
@@ -129,7 +122,6 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria
        /**
         * Getter for skip
         *
-        * @param       
         * @return      $skip   Search skip
         */
        public final function getSkip () {
@@ -183,6 +175,36 @@ class SearchCriteria extends BaseFrameworkSystem implements LocalSearchCriteria
                // Return the value
                return $value;
        }
+
+       /**
+        * Checks wether given array entry matches
+        *
+        * @param       $entryArray             Array with the entries to find
+        * @return      $matches                Wether the entry matches or not
+        */
+       public function ifEntryMatches (array $entryArray) {
+               // First nothing matches and nothing is counted
+               $matches = false;
+               $counted = 0;
+
+               // Walk through all entries
+               foreach ($entryArray as $key=>$entry) {
+                       // Then walk through all search criteria
+                       foreach ($this->searchCriteria as $criteriaKey=>$criteriaValue) {
+                               // Is the element found and does it match?
+                               if (($key == $criteriaKey) && ($criteriaValue == $entry)) {
+                                       // Then count this one up
+                                       $counted++;
+                               } // END - if
+                       } // END - foreach
+               } // END - foreach
+
+               // Now check if the criteria matches
+               $matches = ($counted == count($this->searchCriteria));
+
+               // Return the result
+               return $matches;
+       }
 }
 
 // [EOF]