[TASK] Refactor view component of system extension form
authorOliver Hader <oliver@typo3.org>
Tue, 20 Sep 2011 14:54:49 +0000 (16:54 +0200)
committerOliver Hader <oliver@typo3.org>
Tue, 20 Sep 2011 15:32:23 +0000 (17:32 +0200)
Get rid of calling the constructor of the parent without any additional logic.

Change-Id: I5ebfe092c4174db0c75d76c1469ddff15e6c4ddf
Resolves: #30094
Releases: 4.6
Reviewed-on: http://review.typo3.org/5125
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
21 files changed:
typo3/sysext/form/Classes/View/Form/Element/Abstract.php
typo3/sysext/form/Classes/View/Form/Element/Button.php
typo3/sysext/form/Classes/View/Form/Element/Checkbox.php
typo3/sysext/form/Classes/View/Form/Element/Checkboxgroup.php
typo3/sysext/form/Classes/View/Form/Element/Container.php
typo3/sysext/form/Classes/View/Form/Element/Content.php
typo3/sysext/form/Classes/View/Form/Element/Fieldset.php
typo3/sysext/form/Classes/View/Form/Element/Fileupload.php
typo3/sysext/form/Classes/View/Form/Element/Hidden.php
typo3/sysext/form/Classes/View/Form/Element/Imagebutton.php
typo3/sysext/form/Classes/View/Form/Element/Optgroup.php
typo3/sysext/form/Classes/View/Form/Element/Option.php
typo3/sysext/form/Classes/View/Form/Element/Password.php
typo3/sysext/form/Classes/View/Form/Element/Radio.php
typo3/sysext/form/Classes/View/Form/Element/Radiogroup.php
typo3/sysext/form/Classes/View/Form/Element/Reset.php
typo3/sysext/form/Classes/View/Form/Element/Select.php
typo3/sysext/form/Classes/View/Form/Element/Submit.php
typo3/sysext/form/Classes/View/Form/Element/Textarea.php
typo3/sysext/form/Classes/View/Form/Element/Textline.php
typo3/sysext/form/Classes/View/Form/Form.php

index fe05164..76a2e6c 100644 (file)
@@ -34,10 +34,15 @@ abstract class tx_form_View_Form_Element_Abstract {
        /**
         * The model for the current object
         *
-        * @var object
+        * @var tx_form_Domain_Model_Element_Abstract
         */
        protected $model;
 
+       /**
+        * @var string
+        */
+       protected $expectedModelName;
+
        /**
         * Wrap for elements
         *
@@ -60,13 +65,42 @@ abstract class tx_form_View_Form_Element_Abstract {
        /**
         * Constructor
         *
-        * @param object $model Current elements model
+        * @param tx_form_Domain_Model_Element_Abstract $model Current elements model
         * @return void
         */
-       public function __construct($model) {
+       public function __construct(tx_form_Domain_Model_Element_Abstract $model) {
+               if ($this->isValidModel($model) === FALSE) {
+                       throw new RuntimeException('Unexpected model "' . get_class($model) . '".');
+               }
+
                $this->model = $model;
        }
 
+       /**
+        * Determines whether the model is expected in this object.
+        *
+        * @param tx_form_Domain_Model_Element_Abstract $model
+        * @return boolean
+        */
+       protected function isValidModel(tx_form_Domain_Model_Element_Abstract $model) {
+               return is_a($model, $this->getExpectedModelName($model));
+       }
+
+       /**
+        * Gets the expected model name.
+        *
+        * @param tx_form_Domain_Model_Element_Abstract $model
+        * @return string
+        */
+       protected function getExpectedModelName(tx_form_Domain_Model_Element_Abstract $model) {
+               if (!isset($this->expectedModelName)) {
+                       $specificName = tx_form_Common::getInstance()->getLastPartOfClassName($this);
+                       $this->expectedModelName = 'tx_form_Domain_Model_Element_' . $specificName;
+               }
+
+               return $this->expectedModelName;
+       }
+
        /**
         * Parse the XML of a view object,
         * check the node type and name
index 9c85aa2..97f4489 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Button extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Button extends tx_form_View_Form_Element_Abstrac
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Button $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Button $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index a309e37..b71368a 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Checkbox extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Checkbox extends tx_form_View_Form_Element_Abstr
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Checkbox $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Checkbox $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index ae6a89c..cff2376 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Checkboxgroup extends tx_form_View_Form_Element_Fieldset {
-
        /**
         * Default layout of this object
         *
@@ -42,15 +41,5 @@ class tx_form_View_Form_Element_Checkboxgroup extends tx_form_View_Form_Element_
                        <containerWrap />
                </fieldset>
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Checkboxgroup $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Checkboxgroup $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 8296ca9..2fdf546 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Container extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of the container
         *
@@ -42,16 +41,6 @@ class tx_form_View_Form_Element_Container extends tx_form_View_Form_Element_Abst
                </ol>
        ';
 
-       /**
-        * Constructor
-        *
-        * @param object $model Model for this element
-        * @return void
-        */
-       public function __construct($model) {
-               parent::__construct($model);
-       }
-
        /**
         * Get the child objects
         * and render them as document fragment
index fdcd7f6..d83928f 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Content extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -39,15 +38,5 @@ class tx_form_View_Form_Element_Content extends tx_form_View_Form_Element_Abstra
        protected $layout = '
                <content />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Content $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Content $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index e56bfab..0d9fc2b 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Fieldset extends tx_form_View_Form_Element_Container {
-
        /**
         * Default layout of this object
         *
@@ -42,15 +41,5 @@ class tx_form_View_Form_Element_Fieldset extends tx_form_View_Form_Element_Conta
                        <containerWrap />
                </fieldset>
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Fieldset $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Fieldset $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 366f0cd..b7eed9e 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Fileupload extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Fileupload extends tx_form_View_Form_Element_Abs
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Fileupload $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Fileupload $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index b134ae8..8c2d133 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Hidden extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -39,15 +38,5 @@ class tx_form_View_Form_Element_Hidden extends tx_form_View_Form_Element_Abstrac
        protected $layout = '
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Hidden $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Hidden $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 793a00e..a10af9c 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Imagebutton extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Imagebutton extends tx_form_View_Form_Element_Ab
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Imagebutton $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Imagebutton $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index e880a23..8b25dc1 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Optgroup extends tx_form_View_Form_Element_Container {
-
        /**
         * Default layout of this object
         *
@@ -49,15 +48,5 @@ class tx_form_View_Form_Element_Optgroup extends tx_form_View_Form_Element_Conta
         * @var boolean
         */
        protected $noWrap = TRUE;
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Optgroup $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Optgroup $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 93f8f0a..15746cb 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Option extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -47,15 +46,5 @@ class tx_form_View_Form_Element_Option extends tx_form_View_Form_Element_Abstrac
         * @var boolean
         */
        protected $noWrap = TRUE;
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Option $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Option $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 597232e..684f7d3 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Password extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Password extends tx_form_View_Form_Element_Abstr
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Password $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Password $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index a61be44..9c5784c 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Radio extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Radio extends tx_form_View_Form_Element_Abstract
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Radio $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Radio $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 305ff59..e2aad9b 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Radiogroup extends tx_form_View_Form_Element_Fieldset {
-
        /**
         * Default layout of this object
         *
@@ -42,15 +41,5 @@ class tx_form_View_Form_Element_Radiogroup extends tx_form_View_Form_Element_Fie
                        <containerWrap />
                </fieldset>
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Radiogroup $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Radiogroup $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index fbc3eeb..83a343a 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Reset extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Reset extends tx_form_View_Form_Element_Abstract
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Reset $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Reset $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 79a50e1..3c5593b 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Select extends tx_form_View_Form_Element_Container {
-
        /**
         * Default layout of this object
         *
@@ -42,15 +41,5 @@ class tx_form_View_Form_Element_Select extends tx_form_View_Form_Element_Contain
                        <elements />
                </select>
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Select $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Select $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 11238e6..24b0e21 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Submit extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Submit extends tx_form_View_Form_Element_Abstrac
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Submit $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Submit $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 606025f..4d81401 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Textarea extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Textarea extends tx_form_View_Form_Element_Abstr
                <label />
                <textarea />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Textarea $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Textarea $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index 5075eb1..3cf262b 100644 (file)
@@ -30,7 +30,6 @@
  * @subpackage form
  */
 class tx_form_View_Form_Element_Textline extends tx_form_View_Form_Element_Abstract {
-
        /**
         * Default layout of this object
         *
@@ -40,15 +39,5 @@ class tx_form_View_Form_Element_Textline extends tx_form_View_Form_Element_Abstr
                <label />
                <input />
        ';
-
-       /**
-        * Constructor
-        *
-        * @param tx_form_Domain_Model_Element_Textline $model Model for this element
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Element_Textline $model) {
-               parent::__construct($model);
-       }
 }
 ?>
\ No newline at end of file
index ad37433..bb86a32 100644 (file)
  * @subpackage form
  */
 class tx_form_View_Form extends tx_form_View_Form_Element_Container {
+       /**
+        * @var string
+        */
+       protected $expectedModelName = 'tx_form_Domain_Model_Form';
 
        /**
         * Default layout of this object
@@ -41,15 +45,6 @@ class tx_form_View_Form extends tx_form_View_Form_Element_Container {
                        <containerWrap />
                </form>';
 
-       /**
-        * Constructor
-        *
-        * @return void
-        */
-       public function __construct(tx_form_Domain_Model_Form $model) {
-               parent::__construct($model);
-       }
-
        /**
         * Set the data for the FORM tag
         *