]> git.mxchange.org Git - core.git/blobdiff - framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php
Continued:
[core.git] / framework / main / classes / file_directories / output / text / class_FrameworkTextFileOutputPointer.php
index 33aa707c7367588e134a247c5d49bd473840d365..5ba314498b4e1dd59ca39ce40f0afbe223886743 100644 (file)
@@ -4,6 +4,7 @@ namespace Org\Mxchange\CoreFramework\Filesystem\Pointer\Text;
 
 // Import framework stuff
 use Org\Mxchange\CoreFramework\Filesystem\BaseFileIo;
+use Org\Mxchange\CoreFramework\Filesystem\FileIoException;
 use Org\Mxchange\CoreFramework\Filesystem\Pointer\OutputPointer;
 use Org\Mxchange\CoreFramework\Generic\NullPointerException;
 use Org\Mxchange\CoreFramework\Generic\UnsupportedOperationException;
@@ -11,6 +12,7 @@ use Org\Mxchange\CoreFramework\Generic\UnsupportedOperationException;
 // Import SPL stuff
 use \InvalidArgumentException;
 use \SplFileInfo;
+use \SplFileObject;
 
 /**
  * A class for writing files
@@ -55,8 +57,9 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer
         * @throws      FileIoException                 If fopen() returns not a file resource
         * @return      void
         */
-       public static final function createFrameworkTextFileOutputPointer (SplFileInfo $fileInstance, $mode) {
+       public static final function createFrameworkTextFileOutputPointer (SplFileInfo $fileInstance, string $mode) {
                // Some pre-sanity checks...
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TEXT-FILE-OUTPUT-POINTER: fileInstance[%s]=%s,mode=%s - CALLED!', get_class($fileInstance), $fileInstance->__toString(), $mode));
                if (empty($mode)) {
                        // No filename given
                        throw new InvalidArgumentException('Parameter "mode" is empty');
@@ -66,7 +69,8 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer
                $fileObject = $fileInstance->openFile($mode);
 
                // Is it valid?
-               if ((is_null($fileObject)) || ($fileObject === false)) {
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TEXT-FILE-OUTPUT-POINTER: fileObject[]=%s', gettype($fileObject)));
+               if (!($fileObject instanceof SplFileObject)) {
                        // Something bad happend
                        throw new FileIoException($fileInstance, self::EXCEPTION_FILE_POINTER_INVALID);
                }
@@ -78,6 +82,7 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer
                $pointerInstance->setFileObject($fileObject);
 
                // Return the instance
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TEXT-FILE-OUTPUT-POINTER: pointerInstance=%s - EXIT!', $pointerInstance->__toString()));
                return $pointerInstance;
        }
 
@@ -90,7 +95,12 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer
         * @throws      LogicException  If there is no object being set
         */
        public function writeToFile (string $dataStream) {
-               if (is_null($this->getFileObject())) {
+               // Validate parameter
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TEXT-FILE-OUTPUT-POINTER: dataStream=%s - CALLED!', $dataStream));
+               if (empty($dataStream)) {
+                       // Invalid parameter
+                       throw new InvalidArgumentException('Parameter "dataStream" is empty');
+               } elseif (is_null($this->getFileObject())) {
                        // Pointer not initialized
                        throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER);
                } elseif (!is_object($this->getFileObject())) {