Merge "(bug 40610) Prevent editing textarea from overflowing out of bodyContent"
[lhc/web/wiklou.git] / includes / content / AbstractContent.php
index 860b4c3..0a8bb9e 100644 (file)
@@ -3,7 +3,27 @@
  * A content object represents page content, e.g. the text to show on a page.
  * Content objects have no knowledge about how they relate to Wiki pages.
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @since 1.21
+ *
+ * @file
+ * @ingroup Content
+ *
+ * @author Daniel Kinzler
  */
 abstract class AbstractContent implements Content {
 
@@ -11,19 +31,25 @@ abstract class AbstractContent implements Content {
         * Name of the content model this Content object represents.
         * Use with CONTENT_MODEL_XXX constants
         *
+        * @since 1.21
+        *
         * @var string $model_id
         */
        protected $model_id;
 
        /**
-        * @param String $model_id
+        * @param string|null $modelId
+        *
+        * @since 1.21
         */
-       public function __construct( $model_id = null ) {
-               $this->model_id = $model_id;
+       public function __construct( $modelId = null ) {
+               $this->model_id = $modelId;
        }
 
        /**
-        * @see Content::getModel()
+        * @see Content::getModel
+        *
+        * @since 1.21
         */
        public function getModel() {
                return $this->model_id;
@@ -33,41 +59,57 @@ abstract class AbstractContent implements Content {
         * Throws an MWException if $model_id is not the id of the content model
         * supported by this Content object.
         *
-        * @param $model_id int the model to check
+        * @since 1.21
+        *
+        * @param string $modelId The model to check
         *
         * @throws MWException
         */
-       protected function checkModelID( $model_id ) {
-               if ( $model_id !== $this->model_id ) {
-                       throw new MWException( "Bad content model: " .
+       protected function checkModelID( $modelId ) {
+               if ( $modelId !== $this->model_id ) {
+                       throw new MWException(
+                               "Bad content model: " .
                                "expected {$this->model_id}  " .
-                               "but got $model_id." );
+                               "but got $modelId."
+                       );
                }
        }
 
        /**
-        * @see Content::getContentHandler()
+        * @see Content::getContentHandler
+        *
+        * @since 1.21
         */
        public function getContentHandler() {
                return ContentHandler::getForContent( $this );
        }
 
        /**
-        * @see Content::getDefaultFormat()
+        * @see Content::getDefaultFormat
+        *
+        * @since 1.21
         */
        public function getDefaultFormat() {
                return $this->getContentHandler()->getDefaultFormat();
        }
 
        /**
-        * @see Content::getSupportedFormats()
+        * @see Content::getSupportedFormats
+        *
+        * @since 1.21
         */
        public function getSupportedFormats() {
                return $this->getContentHandler()->getSupportedFormats();
        }
 
        /**
-        * @see Content::isSupportedFormat()
+        * @see Content::isSupportedFormat
+        *
+        * @param string $format
+        *
+        * @since 1.21
+        *
+        * @return boolean
         */
        public function isSupportedFormat( $format ) {
                if ( !$format ) {
@@ -78,42 +120,66 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * Throws an MWException if $this->isSupportedFormat( $format ) doesn't
+        * Throws an MWException if $this->isSupportedFormat( $format ) does not
         * return true.
         *
-        * @param $format
+        * @since 1.21
+        *
+        * @param string $format
         * @throws MWException
         */
        protected function checkFormat( $format ) {
                if ( !$this->isSupportedFormat( $format ) ) {
-                       throw new MWException( "Format $format is not supported for content model " .
-                               $this->getModel() );
+                       throw new MWException(
+                               "Format $format is not supported for content model " .
+                               $this->getModel()
+                       );
                }
        }
 
        /**
         * @see Content::serialize
+        *
+        * @param string|null $format
+        *
+        * @since 1.21
+        *
+        * @return string
         */
        public function serialize( $format = null ) {
                return $this->getContentHandler()->serializeContent( $this, $format );
        }
 
        /**
-        * @see Content::isEmpty()
+        * @see Content::isEmpty
+        *
+        * @since 1.21
+        *
+        * @return boolean
         */
        public function isEmpty() {
                return $this->getSize() === 0;
        }
 
        /**
-        * @see Content::isValid()
+        * @see Content::isValid
+        *
+        * @since 1.21
+        *
+        * @return boolean
         */
        public function isValid() {
                return true;
        }
 
        /**
-        * @see Content::equals()
+        * @see Content::equals
+        *
+        * @since 1.21
+        *
+        * @param Content|null $that
+        *
+        * @return boolean
         */
        public function equals( Content $that = null ) {
                if ( is_null( $that ) ) {
@@ -173,7 +239,9 @@ abstract class AbstractContent implements Content {
 
 
        /**
-        * @see Content::getRedirectChain()
+        * @see Content::getRedirectChain
+        *
+        * @since 1.21
         */
        public function getRedirectChain() {
                global $wgMaxRedirects;
@@ -205,15 +273,19 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::getRedirectTarget()
+        * @see Content::getRedirectTarget
+        *
+        * @since 1.21
         */
        public function getRedirectTarget() {
                return null;
        }
 
        /**
-        * @see Content::getUltimateRedirectTarget()
+        * @see Content::getUltimateRedirectTarget
         * @note: migrated here from Title::newFromRedirectRecurse
+        *
+        * @since 1.21
         */
        public function getUltimateRedirectTarget() {
                $titles = $this->getRedirectChain();
@@ -221,7 +293,7 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::isRedirect()
+        * @see Content::isRedirect
         *
         * @since 1.21
         *
@@ -232,10 +304,12 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::updateRedirect()
+        * @see Content::updateRedirect
         *
         * This default implementation always returns $this.
         *
+        * @param Title $target
+        *
         * @since 1.21
         *
         * @return Content $this
@@ -245,42 +319,54 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::getSection()
+        * @see Content::getSection
+        *
+        * @since 1.21
         */
        public function getSection( $sectionId ) {
                return null;
        }
 
        /**
-        * @see Content::replaceSection()
+        * @see Content::replaceSection
+        *
+        * @since 1.21
         */
        public function replaceSection( $section, Content $with, $sectionTitle = ''  ) {
                return null;
        }
 
        /**
-        * @see Content::preSaveTransform()
+        * @see Content::preSaveTransform
+        *
+        * @since 1.21
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
                return $this;
        }
 
        /**
-        * @see Content::addSectionHeader()
+        * @see Content::addSectionHeader
+        *
+        * @since 1.21
         */
        public function addSectionHeader( $header ) {
                return $this;
        }
 
        /**
-        * @see Content::preloadTransform()
+        * @see Content::preloadTransform
+        *
+        * @since 1.21
         */
        public function preloadTransform( Title $title, ParserOptions $popts ) {
                return $this;
        }
 
        /**
-        * @see  Content::prepareSave()
+        * @see Content::prepareSave
+        *
+        * @since 1.21
         */
        public function prepareSave( WikiPage $page, $flags, $baseRevId, User $user ) {
                if ( $this->isValid() ) {
@@ -291,12 +377,12 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see  Content::getDeletionUpdates()
+        * @see Content::getDeletionUpdates
         *
         * @since 1.21
         *
-        * @param $page \WikiPage the deleted page
-        * @param $parserOutput null|\ParserOutput optional parser output object
+        * @param $page WikiPage the deleted page
+        * @param $parserOutput null|ParserOutput optional parser output object
         *    for efficient access to meta-information about the content object.
         *    Provide if you have one handy.
         *
@@ -312,10 +398,12 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see  Content::matchMagicWord()
-        *
         * This default implementation always returns false. Subclasses may override this to supply matching logic.
         *
+        * @see Content::matchMagicWord
+        *
+        * @since 1.21
+        *
         * @param MagicWord $word
         *
         * @return bool
@@ -323,4 +411,4 @@ abstract class AbstractContent implements Content {
        public function matchMagicWord( MagicWord $word ) {
                return false;
        }
-}
\ No newline at end of file
+}