]> git.mxchange.org Git - core.git/blobdiff - framework/main/classes/compressor/class_GzipCompressor.php
Continued:
[core.git] / framework / main / classes / compressor / class_GzipCompressor.php
index 36f556e28649cdff161ab8e2da008625e5989219..4a46ab89c950b8a86de5f93895e446ae2a61ac52 100644 (file)
@@ -6,6 +6,9 @@ namespace Org\Mxchange\CoreFramework\Compressor\Gzip;
 use Org\Mxchange\CoreFramework\Compressor\Compressor;
 use Org\Mxchange\CoreFramework\Object\BaseFrameworkSystem;
 
+// Load SPL stuff
+use \InvalidArgumentException;
+
 /**
  * GZIP compression and decompression class
  *
@@ -52,7 +55,7 @@ class GzipCompressor extends BaseFrameworkSystem implements Compressor {
                if ((function_exists('gzencode')) && (function_exists('gzdecode'))) {
                        // Compressor can maybe be used
                        $compressorInstance = new GzipCompressor();
-               } // END - if
+               }
 
                // Return the compressor instance
                return $compressorInstance;
@@ -63,13 +66,14 @@ class GzipCompressor extends BaseFrameworkSystem implements Compressor {
         *
         * @param       $streamData             Mixed non-object stream data
         * @return      $streamData             The compressed stream data
-        * @throws      InvalidObjectException  If the stream is an object
+        * @throws      InvalidArgumentException        If the stream is not compressable or decompressable
         */
        public function compressStream ($streamData) {
-               if (is_object($streamData)) {
+               // Validate parameter
+               if (is_object($streamData) || is_resource($streamData)) {
                        // Throw an exception
-                       throw new InvalidObjectException($streamData, self::EXCEPTION_UNEXPECTED_OBJECT);
-               } // END - if
+                       throw new InvalidArgumentException(sprintf('streamData[]=%s cannot be compressed/decompressed', gettype($streamData)));
+               }
 
                // Return the compressed stream
                return gzencode($streamData, 1);
@@ -80,13 +84,14 @@ class GzipCompressor extends BaseFrameworkSystem implements Compressor {
         *
         * @param       $streamData             Mixed non-object stream data
         * @return      $streamData             The decompressed stream data
-        * @throws      InvalidObjectException  If the stream is an object
+        * @throws      InvalidArgumentException        If the stream is not compressable or decompressable
         */
        public function decompressStream ($streamData) {
-               if (is_object($streamData)) {
+               // Validate parameter
+               if (is_object($streamData) || is_resource($streamData)) {
                        // Throw an exception
-                       throw new InvalidObjectException($streamData, self::EXCEPTION_UNEXPECTED_OBJECT);
-               } // END - if
+                       throw new InvalidArgumentException(sprintf('streamData[]=%s cannot be compressed/decompressed', gettype($streamData)));
+               }
 
                // Return the decompressed stream
                return gzdecode($streamData);