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