r52070 breaks the use of optgroups etc: array(...) is cast to 'Array'. Need to only...
[lhc/web/wiklou.git] / includes / WikiError.php
index ef8437f..6c7406a 100644 (file)
@@ -1,7 +1,8 @@
 <?php
 /**
  * MediaWiki error classes
- * Copyright (C) 2005 Brion Vibber <brion@pobox.com>
+ *
+ * Copyright © 2005 Brion Vibber <brion@pobox.com>
  * http://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
  *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
- * @package MediaWiki
+ * @file
  */
 
 /**
  * Since PHP4 doesn't have exceptions, here's some error objects
  * loosely modeled on the standard PEAR_Error model...
- * @package MediaWiki
+ * @ingroup Exception
  */
 class WikiError {
        /**
-        * @param string $message
+        * @param $message string
         */
-       function WikiError( $message ) {
+       function __construct( $message ) {
+               wfDeprecated( __METHOD__ );
                $this->mMessage = $message;
        }
-       
+
        /**
         * @return string Plaintext error message to display
         */
        function getMessage() {
                return $this->mMessage;
        }
-       
+
        /**
         * In following PEAR_Error model this could be formatted differently,
         * but so far it's not.
@@ -50,46 +52,67 @@ class WikiError {
        function toString() {
                return $this->getMessage();
        }
-       
+
        /**
         * Returns true if the given object is a WikiError-descended
         * error object, false otherwise.
         *
-        * @param mixed $object
+        * @param $object mixed
         * @return bool
-        * @static
         */
-       function isError( &$object ) {
-               return is_a( $object, 'WikiError' );
+       public static function isError( $object ) {
+               wfDeprecated( __METHOD__ );
+               if ( $object instanceof WikiError ) {
+                       return true;
+               } elseif ( $object instanceof Status ) {
+                       return !$object->isOK();
+               } else {
+                       return false;
+               }
        }
 }
 
 /**
  * Localized error message object
- * @package MediaWiki
+ * @ingroup Exception
  */
 class WikiErrorMsg extends WikiError {
        /**
-        * @param string $message Wiki message name
+        * @param $message String: wiki message name
         * @param ... parameters to pass to wfMsg()
         */
-       function WikiErrorMsg( $message/*, ... */ ) {
+       function __construct( $message/*, ... */ ) {
+               wfDeprecated( __METHOD__ );
                $args = func_get_args();
                array_shift( $args );
                $this->mMessage = wfMsgReal( $message, $args, true );
+               $this->mMsgKey = $message;
+               $this->mMsgArgs = $args;
+       }
+       
+       function getMessageKey() {
+               return $this->mMsgKey;
+       }
+       
+       function getMessageArgs() {
+               return $this->mMsgArgs;
        }
 }
 
 /**
- * @package MediaWiki
- * @todo document
+ * Error class designed to handle errors involved with 
+ * XML parsing
+ * @ingroup Exception
  */
 class WikiXmlError extends WikiError {
        /**
-        * @param resource $parser
-        * @param string $message
+        * @param $parser resource
+        * @param $message string
+        * @param $context
+        * @param $offset Int
         */
-       function WikiXmlError( $parser, $message = 'XML parsing error', $context = null, $offset = 0 ) {
+       function __construct( $parser, $message = 'XML parsing error', $context = null, $offset = 0 ) {
+               wfDeprecated( __METHOD__ );
                $this->mXmlError = xml_get_error_code( $parser );
                $this->mColumn = xml_get_current_column_number( $parser );
                $this->mLine = xml_get_current_line_number( $parser );
@@ -100,17 +123,17 @@ class WikiXmlError extends WikiError {
                wfDebug( "WikiXmlError: " . $this->getMessage() . "\n" );
        }
 
-       /** @return string */   
+       /** @return string */
        function getMessage() {
-               return sprintf( '%s at line %d, col %d (byte %d%s): %s',
+               // '$1 at line $2, col $3 (byte $4): $5',
+               return wfMsgHtml( 'xml-error-string',
                        $this->mMessage,
                        $this->mLine,
                        $this->mColumn,
-                       $this->mByte,
-                       $this->mContext,
+                       $this->mByte . $this->mContext,
                        xml_error_string( $this->mXmlError ) );
        }
-       
+
        function _extractContext( $context, $offset ) {
                if( is_null( $context ) ) {
                        return null;
@@ -121,5 +144,3 @@ class WikiXmlError extends WikiError {
                }
        }
 }
-
-?>