var $value;
/** Counters for batch operations */
- var $successCount = 0, $failCount = 0;
+ public $successCount = 0, $failCount = 0;
+ /** Array to indicate which items of the batch operations failed */
+ public $success = array();
/*semi-private*/ var $errors = array();
/*semi-private*/ var $cleanCallback = false;
/**
* Merge another status object into this one
*
- * @param $other Other Status object
+ * @param $other Status Other Status object
* @param $overwriteValue Boolean: whether to override the "value" member
*/
function merge( $other, $overwriteValue = false ) {
* @return Array
*/
function getErrorsArray() {
- return $this->getStatArray( "error" );
+ return $this->getStatusArray( "error" );
}
/**
* @return Array
*/
function getWarningsArray() {
- return $this->getStatArray( "warning" );
+ return $this->getStatusArray( "warning" );
}
/**
*
* @return Array
*/
- protected function getStatArray( $type ) {
+ protected function getStatusArray( $type ) {
$result = array();
foreach ( $this->errors as $error ) {
if ( $error['type'] === $type ) {
if( $error['params'] ) {
$result[] = array_merge( array( $error['message'] ), $error['params'] );
} else {
- $result[] = $error['message'];
+ $result[] = array( $error['message'] );
}
}
}
return $result;
}
+
+ /**
+ * Returns a list of status messages of the given type, with message and
+ * params left untouched, like a sane version of getStatusArray
+ *
+ * @param $type String
+ *
+ * @return Array
+ */
+ public function getErrorsByType( $type ) {
+ $result = array();
+ foreach ( $this->errors as $error ) {
+ if ( $error['type'] === $type ) {
+ $result[] = $error;
+ }
+ }
+ return $result;
+ }
+
/**
* Returns true if the specified message is present as a warning or error
*
}
return false;
}
+
+ /**
+ * If the specified source message exists, replace it with the specified
+ * destination message, but keep the same parameters as in the original error.
+ *
+ * Return true if the replacement was done, false otherwise.
+ */
+ function replaceMessage( $source, $dest ) {
+ $replaced = false;
+ foreach ( $this->errors as $index => $error ) {
+ if ( $error['message'] === $source ) {
+ $this->errors[$index]['message'] = $dest;
+ $replaced = true;
+ }
+ }
+ return $replaced;
+ }
+
+ /**
+ * Backward compatibility function for WikiError -> Status migration
+ *
+ * @return String
+ */
+ public function getMessage() {
+ return $this->getWikiText();
+ }
}