http://www.mediawiki.org/wiki/Special:Code/MediaWiki/73380

Revision: 73380
Author:   jeroendedauw
Date:     2010-09-20 14:34:39 +0000 (Mon, 20 Sep 2010)

Log Message:
-----------
Changes for 0.4 - added parameter type based criteria and made a small 
improvement to the inArray criteria constructor

Modified Paths:
--------------
    trunk/extensions/Validator/includes/Parameter.php
    trunk/extensions/Validator/includes/criteria/CriterionInArray.php

Modified: trunk/extensions/Validator/includes/Parameter.php
===================================================================
--- trunk/extensions/Validator/includes/Parameter.php   2010-09-20 14:33:46 UTC 
(rev 73379)
+++ trunk/extensions/Validator/includes/Parameter.php   2010-09-20 14:34:39 UTC 
(rev 73380)
@@ -535,30 +535,27 @@
        protected function getCriteriaForType() {
                $criteria = array();
                
-               /* TODO
                switch( $this->type ) {
-                       case TYPE_INTEGER:
-                               $criteria[] = 'is_integer';
+                       case self::TYPE_INTEGER:
+                               $criteria[] = new CriterionIsInteger();
                                break;
-                       case TYPE_FLOAT:
-                               $criteria[] = 'is_float';
+                       case self::TYPE_FLOAT:
+                               $criteria[] = new CriterionIsFloat();
                                break;
-                       case TYPE_NUMBER: // Note: This accepts non-decimal 
notations! 
-                               $criteria[] = 'is_numeric';
+                       case self::TYPE_FLOAT: // Note: This accepts 
non-decimal notations! 
+                               $criteria[] = new CriterionIsNumeric();
                                break;
-                       case TYPE_BOOLEAN:
-                               // TODO: work with list of true and false 
values. 
-                               // TODO: i18n
-                               $criteria[] =  array( 'in_array' => array( 
'yes', 'no', 'on', 'off' ) );
+                       case self::TYPE_BOOLEAN:
+                               // TODO: work with list of true and false 
values and i18n. 
+                               $criteria[] = new CriterionInArray( 'yes', 
'no', 'on', 'off' );
                                break;
-                       case TYPE_CHAR:
-                               $criteria[] = array( 'has_length' => array( 1, 
1 ) );
+                       case self::TYPE_CHAR:
+                               $criteria[] = new CriterionHasLength( 1, 1 ); 
                                break;
-                       case TYPE_STRING: default:
+                       case self::TYPE_STRING: default:
                                // No extra criteria for strings.
                                break;
                }
-               */
 
                return $criteria;
        }
@@ -571,7 +568,6 @@
         * @return array
         */             
        public function getListCriteria() {
-               // TODO
                return array();
        }
        

Modified: trunk/extensions/Validator/includes/criteria/CriterionInArray.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionInArray.php   
2010-09-20 14:33:46 UTC (rev 73379)
+++ trunk/extensions/Validator/includes/criteria/CriterionInArray.php   
2010-09-20 14:34:39 UTC (rev 73380)
@@ -29,10 +29,20 @@
         * 
         * @since 0.4
         */
-       public function __construct( $allowedValues ) {
+       public function __construct() {
                parent::__construct();
                
-               $this->allowedValues = (array)$allowedValues;
+               $args = func_get_args();
+               
+               if ( count( $args ) > 1 ) {
+                       $this->allowedValues = $args; 
+               }
+               elseif ( count( $args ) == 1 )  {
+                       $this->allowedValues = (array)$args[0];
+               }
+               else {
+                       $this->allowedValues = array();
+               }
        }
        
        /**



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to