From 5c879dc7f30cdffa6d75505e93f8bbcd699e93f5 Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Mon, 14 Jan 2013 14:18:17 +0100
Subject: [PATCH] Declare Reader::open(), Reader::close() abstract; accept
 stream or string

---
 src/HAB/Pica/Reader/PicaPlainReader.php |  9 ++++----
 src/HAB/Pica/Reader/PicaXmlReader.php   | 14 ++++++-------
 src/HAB/Pica/Reader/Reader.php          | 28 +++++++++----------------
 3 files changed, 20 insertions(+), 31 deletions(-)

diff --git a/src/HAB/Pica/Reader/PicaPlainReader.php b/src/HAB/Pica/Reader/PicaPlainReader.php
index 0d5c0c0..3f428eb 100644
--- a/src/HAB/Pica/Reader/PicaPlainReader.php
+++ b/src/HAB/Pica/Reader/PicaPlainReader.php
@@ -38,15 +38,15 @@ class PicaPlainReader extends Reader
      */
     protected $_data;
 
+
     /**
-     * Open the reader with input data.
+     * Open the reader with input stream.
      *
-     * @param  string $data Input data
+     * @param  resource|string $stream
      * @return void
      */
     public function open ($data)
     {
-        parent::open($data);
         $this->_data = preg_split("/(?:\n\r|[\n\r])/", $data);
     }
 
@@ -68,13 +68,12 @@ class PicaPlainReader extends Reader
     }
 
     /**
-     * Close the reader.
+     * Close reader.
      *
      * @return void
      */
     public function close ()
     {
-        parent::close();
         $this->_data = null;
     }
 }
diff --git a/src/HAB/Pica/Reader/PicaXmlReader.php b/src/HAB/Pica/Reader/PicaXmlReader.php
index 7baa0cf..2d7bf93 100644
--- a/src/HAB/Pica/Reader/PicaXmlReader.php
+++ b/src/HAB/Pica/Reader/PicaXmlReader.php
@@ -53,18 +53,17 @@ class PicaXmlReader extends Reader
     }
 
     /**
-     * Prepare the reader for reading data.
+     * Open the reader with input stream.
      *
-     * @param  string|resource $input
+     * @param  resource|string $stream
      * @return void
      */
-    public function open ($input)
+    public function open ($stream)
     {
-        if (is_resource($input)) {
-            $input = stream_get_contents($input);
+        if (is_resource($stream)) {
+            $stream = stream_get_contents($stream);
         }
-        $this->_xmlReader->XML($input);
-        parent::open($input);
+        $this->_xmlReader->xml($stream);
     }
 
     /**
@@ -75,7 +74,6 @@ class PicaXmlReader extends Reader
     public function close ()
     {
         $this->_xmlReader->close();
-        parent::close();
     }
 
     /**
diff --git a/src/HAB/Pica/Reader/Reader.php b/src/HAB/Pica/Reader/Reader.php
index 3484eca..c202f37 100644
--- a/src/HAB/Pica/Reader/Reader.php
+++ b/src/HAB/Pica/Reader/Reader.php
@@ -59,17 +59,19 @@ abstract class Reader
     {}
 
     /**
-     * Open the reader with input data.
+     * Open the reader with input stream.
      *
+     * @param  resource|string $stream
      * @return void
      */
-    public function open ($data)
-    {
-        if ($this->isOpen()) {
-            $this->close();
-        }
-        $this->_isOpen = true;
-    }
+    abstract public function open ($stream);
+
+    /**
+     * Close reader.
+     *
+     * @return void
+     */
+    abstract public function close ();
 
     /**
      * Return next record in input data or FALSE if no more records.
@@ -134,16 +136,6 @@ abstract class Reader
         $this->_filter = null;
     }
 
-    /**
-     * Close the reader.
-     *
-     * @return void
-     */
-    public function close ()
-    {
-        $this->_isOpen = false;
-    }
-
     /**
      * Return true if the reader is open.
      *
-- 
GitLab