Bläddra i källkod

More symmetry in method names in the generator. Better symmetry in the abstract class

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@20208 44c647ce-9c0f-0410-b52a-842ac1e357ba
lars 16 år sedan
förälder
incheckning
8e4753fb26

+ 5 - 5
library/Zend/XmlRpc/Fault.php

@@ -286,11 +286,11 @@ class Zend_XmlRpc_Fault
         $value = Zend_XmlRpc_Value::getXmlRpcValue($faultStruct);
 
         $generator = Zend_XmlRpc_Value::getGenerator();
-        $generator->startElement('methodResponse')
-                  ->startElement('fault');
-        $value->saveXml();
-        $generator->endElement('fault')
-                  ->endElement('methodResponse');
+        $generator->openElement('methodResponse')
+                  ->openElement('fault');
+        $value->generateXml();
+        $generator->closeElement('fault')
+                  ->closeElement('methodResponse');
 
         return $generator->flush();
     }

+ 14 - 15
library/Zend/XmlRpc/Generator/DomDocument.php

@@ -43,40 +43,39 @@ class Zend_XmlRpc_Generator_DomDocument extends Zend_XmlRpc_Generator_GeneratorA
     /**
      * Start XML element
      *
-     * Creates a new XML element and appends it to the document tree
-     *
      * @param string $name
-     * @param string $value
-     * @return Zend_XmlRpc_Generator_DomDocument Fluent interface
+     * @return void
      */
-    public function startElement($name, $value = null)
+    protected function _openElement($name)
     {
         $newElement = $this->_dom->createElement($name);
 
         $this->_currentElement = $this->_currentElement->appendChild($newElement);
+    }
 
-        if ($value !== null) {
-            $this->_currentElement->appendChild($this->_dom->createTextNode($value));
-        }
-
-        return $this;
+    /**
+     * Write XML text data into the currently opened XML element
+     *
+     * @param string $text
+     */
+    protected function _writeTextData($text)
+    {
+        $this->_currentElement->appendChild($this->_dom->createTextNode($text));
     }
 
     /**
-     * End of an XML element
+     * Close an previously opened XML element
      *
      * Resets $_currentElement to the next parent node in the hierarchy
      *
      * @param string $name
-     * @return Zend_XmlRpc_Generator_DomDocument Fluent interface
+     * @return void
      */
-    public function endElement($name)
+    protected function _closeElement($name)
     {
         if (isset($this->_currentElement->parentNode)) {
             $this->_currentElement = $this->_currentElement->parentNode;
         }
-
-        return $this;
     }
 
     /**

+ 42 - 6
library/Zend/XmlRpc/Generator/GeneratorAbstract.php

@@ -26,6 +26,8 @@
 abstract class Zend_XmlRpc_Generator_GeneratorAbstract
 {
     /**
+     * XML encoding string
+     *
      * @var string
      */
     protected $_encoding;
@@ -46,24 +48,37 @@ abstract class Zend_XmlRpc_Generator_GeneratorAbstract
      *
      * Method opens a new XML element with an element name and an optional value
      * 
-     * @param string $name
-     * @param string $value
+     * @param string $name XML tag name
+     * @param string $value Optional value of the XML tag
      * @return Zend_XmlRpc_Generator_Abstract Fluent interface
      */
-    abstract public function startElement($name, $value = null);
+    public function openElement($name, $value = null)
+    {
+        $this->_openElement($name);
+        if ($value !== null) {
+            $this->_writeTextData($value);
+        }
+
+        return $this;
+    }
 
     /**
      * End of an XML element
      *
      * Method marks the end of an XML element
      *
-     * @param string $name
+     * @param string $name XML tag name
      * @return Zend_XmlRpc_Generator_Abstract Fluent interface
      */
-    abstract public function endElement($name);
+    public function closeElement($name)
+    {
+        $this->_closeElement($name);
+
+        return $this;
+    }
 
     /**
-     * Returns XML as a string
+     * Return XML as a string
      *
      * @return string
      */
@@ -111,4 +126,25 @@ abstract class Zend_XmlRpc_Generator_GeneratorAbstract
     {
         return preg_replace('/<\?xml version="1.0"( encoding="[^\"]*")?\?>\n/u', '', $xml);
     }
+
+    /**
+     * Start XML element
+     *
+     * @param string $name XML element name
+     */
+    abstract protected function _openElement($name);
+
+    /**
+     * Write XML text data into the currently opened XML element
+     *
+     * @param string $text
+     */
+    abstract protected function _writeTextData($text);
+
+    /**
+     * End XML element
+     * 
+     * @param string $name
+     */
+    abstract protected function _closeElement($name);
 }

+ 18 - 17
library/Zend/XmlRpc/Generator/XmlWriter.php

@@ -49,35 +49,36 @@ class Zend_XmlRpc_Generator_XmlWriter extends Zend_XmlRpc_Generator_GeneratorAbs
         $this->_xmlWriter->startDocument('1.0', $this->_encoding);
     }
 
+
     /**
-     * Start XML element
-     *
-     * Method opens a new XML element with an element name and an optional value
+     * Open a new XML element
      *
-     * @param string $name
-     * @param string $value
-     * @return Zend_XmlRpc_Generator_XmlWriter Fluent interface
+     * @param string $name XML element name
+     * @return void
      */
-    public function startElement($name, $value = null)
+    protected function _openElement($name)
     {
         $this->_xmlWriter->startElement($name);
-
-        if ($value !== null) {
-            $this->_xmlWriter->text($value);
-        }
-
-        return $this;
     }
 
     /**
-     * End of an XML element
+     * Write XML text data into the currently opened XML element
      *
-     * Called to mark the end of an XML element
+     * @param string $text XML text data
+     * @return void
+     */
+    protected function _writeTextData($text)
+    {
+        $this->_xmlWriter->text($text);
+    }
+
+    /**
+     * Close an previously opened XML element
      *
      * @param string $name
-     * @return Zend_XmlRpc_Generator_XmlWriter Fluent interface
+     * @return void
      */
-    public function endElement($name)
+    protected function _closeElement($name)
     {
         $this->_xmlWriter->endElement();
 

+ 8 - 8
library/Zend/XmlRpc/Request.php

@@ -408,21 +408,21 @@ class Zend_XmlRpc_Request
         $method = $this->getMethod();
 
         $generator = Zend_XmlRpc_Value::getGenerator();
-        $generator->startElement('methodCall')
-                  ->startElement('methodName', $method)
-                  ->endElement('methodName');
+        $generator->openElement('methodCall')
+                  ->openElement('methodName', $method)
+                  ->closeElement('methodName');
 
         if (is_array($args) && count($args)) {
-            $generator->startElement('params');
+            $generator->openElement('params');
 
             foreach ($args as $arg) {
-                $generator->startElement('param');
+                $generator->openElement('param');
                 $arg->generateXml();
-                $generator->endElement('param');
+                $generator->closeElement('param');
             }
-            $generator->endElement('params');
+            $generator->closeElement('params');
         }
-        $generator->endElement('methodCall');
+        $generator->closeElement('methodCall');
 
         return $generator->flush();
     }

+ 6 - 6
library/Zend/XmlRpc/Response.php

@@ -225,13 +225,13 @@ class Zend_XmlRpc_Response
     {
         $value = $this->_getXmlRpcReturn();
         $generator = Zend_XmlRpc_Value::getGenerator();
-        $generator->startElement('methodResponse')
-                  ->startElement('params')
-                  ->startElement('param');
+        $generator->openElement('methodResponse')
+                  ->openElement('params')
+                  ->openElement('param');
         $value->generateXml();
-        $generator->endElement('param')
-                  ->endElement('params')
-                  ->endElement('methodResponse');
+        $generator->closeElement('param')
+                  ->closeElement('params')
+                  ->closeElement('methodResponse');
 
         return $generator->flush();
     }

+ 6 - 6
library/Zend/XmlRpc/Value/Array.php

@@ -56,18 +56,18 @@ class Zend_XmlRpc_Value_Array extends Zend_XmlRpc_Value_Collection
     protected function _generateXml()
     {
         $generator = $this->getGenerator();
-        $generator->startElement('value')
-                  ->startElement('array')
-                  ->startElement('data');
+        $generator->openElement('value')
+                  ->openElement('array')
+                  ->openElement('data');
 
         if (is_array($this->_value)) {
             foreach ($this->_value as $val) {
                 $val->generateXml();
             }
         }
-        $generator->endElement('data')
-                  ->endElement('array')
-                  ->endElement('value');
+        $generator->closeElement('data')
+                  ->closeElement('array')
+                  ->closeElement('value');
 
         $this->_xml = (string)$generator;
     }

+ 4 - 4
library/Zend/XmlRpc/Value/Scalar.php

@@ -45,10 +45,10 @@ abstract class Zend_XmlRpc_Value_Scalar extends Zend_XmlRpc_Value
     {
         $generator = $this->getGenerator();
 
-        $generator->startElement('value')
-                  ->startElement($this->_type, $this->_value)
-                  ->endElement($this->_type)
-                  ->endElement('value');
+        $generator->openElement('value')
+                  ->openElement($this->_type, $this->_value)
+                  ->closeElement($this->_type)
+                  ->closeElement('value');
 
         $this->_xml = (string)$generator;
     }

+ 8 - 8
library/Zend/XmlRpc/Value/Struct.php

@@ -56,21 +56,21 @@ class Zend_XmlRpc_Value_Struct extends Zend_XmlRpc_Value_Collection
     protected function _generateXML()
     {
         $generator = $this->getGenerator();
-        $generator->startElement('value')
-                  ->startElement('struct');
+        $generator->openElement('value')
+                  ->openElement('struct');
 
         if (is_array($this->_value)) {
             foreach ($this->_value as $name => $val) {
                 /* @var $val Zend_XmlRpc_Value */
-                $generator->startElement('member')
-                          ->startElement('name', $name)
-                          ->endElement('name');
+                $generator->openElement('member')
+                          ->openElement('name', $name)
+                          ->closeElement('name');
                 $val->generateXml();
-                $generator->endElement('member');
+                $generator->closeElement('member');
             }
         }
-        $generator->endElement('struct')
-                  ->endElement('value');
+        $generator->closeElement('struct')
+                  ->closeElement('value');
         $this->_xml = (string)$generator;
     }
 }