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

Revision: 72722
Author:   jeroendedauw
Date:     2010-09-10 15:01:28 +0000 (Fri, 10 Sep 2010)

Log Message:
-----------
Changes for 0.4 - work on validation error handling

Modified Paths:
--------------
    trunk/extensions/Validator/includes/ItemParameterCriterion.php
    trunk/extensions/Validator/includes/ListParameter.php
    trunk/extensions/Validator/includes/Parameter.php
    trunk/extensions/Validator/includes/ParameterCriterion.php
    trunk/extensions/Validator/includes/criteria/CriterionHasLength.php
    trunk/extensions/Validator/includes/criteria/CriterionInArray.php
    trunk/extensions/Validator/includes/criteria/CriterionInRange.php
    trunk/extensions/Validator/includes/criteria/CriterionIsFloat.php
    trunk/extensions/Validator/includes/criteria/CriterionIsInteger.php
    trunk/extensions/Validator/includes/criteria/CriterionIsNumeric.php
    trunk/extensions/Validator/includes/criteria/CriterionItemCount.php
    trunk/extensions/Validator/includes/criteria/CriterionMatchesRegex.php
    trunk/extensions/Validator/includes/criteria/CriterionNotEmpty.php
    trunk/extensions/Validator/includes/criteria/CriterionTrue.php
    trunk/extensions/Validator/includes/criteria/CriterionUniqueItems.php

Modified: trunk/extensions/Validator/includes/ItemParameterCriterion.php
===================================================================
--- trunk/extensions/Validator/includes/ItemParameterCriterion.php      
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/ItemParameterCriterion.php      
2010-09-10 15:01:28 UTC (rev 72722)
@@ -30,25 +30,26 @@
         * Gets an internationalized error message to construct a 
ValidationError with
         * when the criterions validation failed. (for non-list values)
         * 
-        * @param string $value
+        * @param Parameter $parameter
         * 
         * @since 0.4
         * 
         * @return string
         */     
-       protected abstract function getItemErrorMessage( $value );
+       protected abstract function getItemErrorMessage( Parameter $parameter );
        
        /**
         * Gets an internationalized error message to construct a 
ValidationError with
         * when the criterions validation failed. (for list values)
         * 
-        * @param array $value
+        * @param Parameter $parameter
+        * @param array $invalidItems
         * 
         * @since 0.4
         * 
         * @return string
         */     
-       protected abstract function getListErrorMessage( array $value );        
+       protected abstract function getListErrorMessage( Parameter $parameter, 
array $invalidItems );   
        
        /**
         * Constructor.
@@ -71,15 +72,15 @@
         * 
         * @since 0.4
         * 
-        * @param $value
+        * @param Parameter $parameter
         * 
         * @return CriterionValidationResult
         */
-       public function validate( $value ) {
+       public function validate( Parameter $parameter ) {
                $result = new CriterionValidationResult();
                
-               if ( is_array( $value ) ) {
-                       foreach ( $value as $item ) {
+               if ( is_array( $parameter->value ) ) {
+                       foreach ( $parameter->value as $item ) {
                                if ( !$this->doValidation( $item ) ) {
                                        $result->addInvalidItem( $item );
                                }
@@ -87,16 +88,14 @@
                        
                        if ( $result->hasInvalidItems() ) {
                                $result->addError(
-                                       new ValidationError( 
$this->getListErrorMessage( $result->getInvalidItems() ) )                      
   
+                                       new ValidationError( 
$this->getListErrorMessage( $parameter, $result->getInvalidItems() ) )          
                   
                                );
                        }
                }
                else {
-                       if ( !$this->doValidation( $value ) ) {
-                               $this->getItemErrorMessage( $value );
-                               
+                       if ( !$this->doValidation( $parameter->value ) ) {
                                $result->addError(
-                                       new ValidationError( 
$this->getItemErrorMessage( $value ) )
+                                       new ValidationError( 
$this->getItemErrorMessage( $parameter ) )
                                );
                        }
                }

Modified: trunk/extensions/Validator/includes/ListParameter.php
===================================================================
--- trunk/extensions/Validator/includes/ListParameter.php       2010-09-10 
14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/ListParameter.php       2010-09-10 
15:01:28 UTC (rev 72722)
@@ -174,7 +174,7 @@
         * @param CriterionValidationResult $validationResult
         */
        protected function handleValidationError( CriterionValidationResult 
$validationResult ) {
-               parent::handleValidationError();
+               parent::handleValidationError( $validationResult );
                
                // Filter out the items that have already been found to be 
invalid.
                if ( $validationResult->hasInvalidItems() ) {

Modified: trunk/extensions/Validator/includes/Parameter.php
===================================================================
--- trunk/extensions/Validator/includes/Parameter.php   2010-09-10 14:12:40 UTC 
(rev 72721)
+++ trunk/extensions/Validator/includes/Parameter.php   2010-09-10 15:01:28 UTC 
(rev 72722)
@@ -402,7 +402,7 @@
                $success = true;
 
                foreach ( $this->getCriteria() as $criterion ) {
-                       $validationResult = $criterion->validate( $this->value 
);
+                       $validationResult = $criterion->validate( $this );
                        
                        if ( !$validationResult->isValid() ) {
                                $success = false;

Modified: trunk/extensions/Validator/includes/ParameterCriterion.php
===================================================================
--- trunk/extensions/Validator/includes/ParameterCriterion.php  2010-09-10 
14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/ParameterCriterion.php  2010-09-10 
15:01:28 UTC (rev 72722)
@@ -14,15 +14,15 @@
 abstract class ParameterCriterion {
        
        /**
-        * Validate a value against the criterion.
+        * Validate a parameter against the criterion.
         * 
-        * @param mixed $value
+        * @param Parameter $parameter
         * 
         * @since 0.4
         * 
         * @return CriterionValidationResult
         */     
-       public abstract function validate( $value );
+       public abstract function validate( Parameter $parameter );
        
        /**
         * Returns if the criterion applies to lists as a whole.

Modified: trunk/extensions/Validator/includes/criteria/CriterionHasLength.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionHasLength.php 
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionHasLength.php 
2010-09-10 15:01:28 UTC (rev 72722)
@@ -42,16 +42,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_invalid_argument', 
'parsemag', $value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_invalid_argument', 
'parsemag', $parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_list_error_invalid_argument', 
'parsemag', $wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_list_error_invalid_argument', 
'parsemag', $wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionInArray.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionInArray.php   
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionInArray.php   
2010-09-10 15:01:28 UTC (rev 72722)
@@ -45,16 +45,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_accepts_only', 'parsemag', 
$value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_accepts_only', 'parsemag', 
$parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_error_accepts_only', 'parsemag', 
$wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_error_accepts_only', 'parsemag', 
$wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }       
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionInRange.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionInRange.php   
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionInRange.php   
2010-09-10 15:01:28 UTC (rev 72722)
@@ -47,16 +47,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_invalid_range', 'parsemag', 
$value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_invalid_range', 'parsemag', 
$parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_list_error_invalid_range', 
'parsemag', $wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_list_error_invalid_range', 
'parsemag', $wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }       
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionIsFloat.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionIsFloat.php   
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionIsFloat.php   
2010-09-10 15:01:28 UTC (rev 72722)
@@ -32,16 +32,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_invalid_argument', 
'parsemag', $value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_invalid_argument', 
'parsemag', $parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_list_error_invalid_argument', 
'parsemag', $wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_list_error_invalid_argument', 
'parsemag', $wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }       
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionIsInteger.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionIsInteger.php 
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionIsInteger.php 
2010-09-10 15:01:28 UTC (rev 72722)
@@ -32,16 +32,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_must_be_integer', 'parsemag', 
$value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_must_be_integer', 'parsemag', 
$parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_list_error_must_be_integer', 
'parsemag', $wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_list_error_must_be_integer', 
'parsemag', $wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }       
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionIsNumeric.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionIsNumeric.php 
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionIsNumeric.php 
2010-09-10 15:01:28 UTC (rev 72722)
@@ -32,16 +32,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_must_be_number', 'parsemag', 
$value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_must_be_number', 'parsemag', 
$parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_list_error_must_be_number', 
'parsemag', $wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_list_error_must_be_number', 
'parsemag', $wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }       
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionItemCount.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionItemCount.php 
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionItemCount.php 
2010-09-10 15:01:28 UTC (rev 72722)
@@ -11,7 +11,7 @@
  * 
  * @author Jeroen De Dauw
  */
-class CriterionHasLength extends ListParameterCriterion {
+class CriterionItemCount extends ListParameterCriterion {
        
        protected $lowerBound;
        protected $upperBound;
@@ -34,8 +34,8 @@
        /**
         * @see ParameterCriterion::validate
         */     
-       public function validate( array $values ) {
-               $count = count( $values );
+       public function validate( ListParameter $parameter ) {
+               $count = count( $parameter->value );
                return $count <= $this->upperBound && $count >= 
$this->lowerBound;
        }
        

Modified: trunk/extensions/Validator/includes/criteria/CriterionMatchesRegex.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionMatchesRegex.php      
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionMatchesRegex.php      
2010-09-10 15:01:28 UTC (rev 72722)
@@ -45,16 +45,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_invalid_argument', 
'parsemag', $value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_invalid_argument', 
'parsemag', $parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_list_error_invalid_argument', 
'parsemag', $wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_list_error_invalid_argument', 
'parsemag', $wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }       
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionNotEmpty.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionNotEmpty.php  
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionNotEmpty.php  
2010-09-10 15:01:28 UTC (rev 72722)
@@ -32,16 +32,16 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
-               return wfMsgExt( 'validator_error_empty_argument', 'parsemag', 
$value );
+       protected function getItemErrorMessage( Parameter $parameter ) {
+               return wfMsgExt( 'validator_error_empty_argument', 'parsemag', 
$parameter->value );
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                global $wgLang;
-               return wfMsgExt( 'validator_list_error_empty_argument', 
'parsemag', $wgLang->listToText( $value ), count( $value ) );
+               return wfMsgExt( 'validator_list_error_empty_argument', 
'parsemag', $wgLang->listToText( $invalidItems ), count( $invalidItems ) );
        }       
        
 }
\ No newline at end of file

Modified: trunk/extensions/Validator/includes/criteria/CriterionTrue.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionTrue.php      
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionTrue.php      
2010-09-10 15:01:28 UTC (rev 72722)
@@ -32,14 +32,14 @@
        /**
         * @see ItemParameterCriterion::getItemErrorMessage
         */     
-       protected function getItemErrorMessage( $value ) {
+       protected function getItemErrorMessage( Parameter $parameter ) {
                return '';
        }
        
        /**
-        * @see ItemParameterCriterion::getItemErrorMessage
+        * @see ItemParameterCriterion::getListErrorMessage
         */     
-       protected function getListErrorMessage( array $value ) {
+       protected function getListErrorMessage( Parameter $parameter, array 
$invalidItems ) {
                return '';
        }       
        

Modified: trunk/extensions/Validator/includes/criteria/CriterionUniqueItems.php
===================================================================
--- trunk/extensions/Validator/includes/criteria/CriterionUniqueItems.php       
2010-09-10 14:12:40 UTC (rev 72721)
+++ trunk/extensions/Validator/includes/criteria/CriterionUniqueItems.php       
2010-09-10 15:01:28 UTC (rev 72722)
@@ -11,7 +11,7 @@
  * 
  * @author Jeroen De Dauw
  */
-class CriterionHasLength extends ListParameterCriterion {
+class CriterionUniqueItems extends ListParameterCriterion {
        
        /**
         * Constructor.
@@ -25,8 +25,8 @@
        /**
         * @see ParameterCriterion::validate
         */     
-       public function validate( array $values ) {
-               return count( $values ) == count( array_unique( $values ) ); 
+       public function validate( ListParameter $parameter ) {
+               return count( $parameter->value ) == count( array_unique( 
$parameter->value ) ); 
        }
        
 }
\ No newline at end of file



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

Reply via email to