X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Ffile_directories%2Foutput%2Ftext%2Fclass_FrameworkTextFileOutputPointer.php;h=e10f20774fd8a6bafa0e155dd30489c8170532f8;hp=11dd3735c0fdfa1fe938f6de5dbe08f0669e56b2;hb=refs%2Fheads%2Fmaster;hpb=a60894f1d6ef33613d2d0351075aa07aa257f304 diff --git a/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php b/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php index 11dd3735..f6587257 100644 --- a/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php +++ b/framework/main/classes/file_directories/output/text/class_FrameworkTextFileOutputPointer.php @@ -3,21 +3,24 @@ namespace Org\Mxchange\CoreFramework\Filesystem\Pointer\Text; // Import framework stuff -use Org\Mxchange\CoreFramework\FileSystem\BaseFileIo; +use Org\Mxchange\CoreFramework\Filesystem\BaseFileIo; +use Org\Mxchange\CoreFramework\Filesystem\FileIoException; use Org\Mxchange\CoreFramework\Filesystem\Pointer\OutputPointer; +use Org\Mxchange\CoreFramework\Generic\FrameworkInterface; use Org\Mxchange\CoreFramework\Generic\NullPointerException; use Org\Mxchange\CoreFramework\Generic\UnsupportedOperationException; // Import SPL stuff use \InvalidArgumentException; use \SplFileInfo; +use \SplFileObject; /** * A class for writing files * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2023 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -40,7 +43,7 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * * @return void */ - protected function __construct () { + private function __construct () { // Call parent constructor parent::__construct(__CLASS__); } @@ -55,21 +58,23 @@ 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'); - } // END - if + throw new InvalidArgumentException('Parameter "mode" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } // Try to open a handler $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); - } // END - if + } // Create new instance $pointerInstance = new FrameworkTextFileOutputPointer(); @@ -78,6 +83,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; } @@ -89,13 +95,18 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * @throws NullPointerException If the file pointer instance is not set by setFileObject() * @throws LogicException If there is no object being set */ - public function writeToFile ($dataStream) { - if (is_null($this->getFileObject())) { + public function writeToFile (string $dataStream) { + // 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', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (is_null($this->getFileObject())) { // Pointer not initialized - throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); + throw new NullPointerException($this, FrameworkInterface::EXCEPTION_IS_NULL_POINTER); } elseif (!is_object($this->getFileObject())) { // Pointer is not a valid object! - throw new LogicException(sprintf('this->fileObject[]=%s is no object', gettype($this->getFileObject()))); + throw new LogicException(sprintf('this->fileObject[]=%s is no object', gettype($this->getFileObject())), FrameworkInterface::EXCEPTION_LOGIC_EXCEPTION); } // Write data to the file pointer and return written bytes @@ -110,8 +121,8 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * @return void * @throws UnsupportedOperationException If this method is called */ - public function analyzeFile () { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + public function analyzeFileStructure () { + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -122,8 +133,8 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * @return mixed Number of writes bytes or false on error * @throws UnsupportedOperationException If this method is called */ - public function writeAtPosition ($seedPosition, $data) { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + public function writeAtPosition (int $seedPosition, string $data) { + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -133,7 +144,7 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * @throws UnsupportedOperationException If this method is called */ public function next () { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -144,7 +155,7 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * @throws UnsupportedOperationException If this method is called */ public function valid () { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -154,7 +165,7 @@ class FrameworkTextFileOutputPointer extends BaseFileIo implements OutputPointer * @throws UnsupportedOperationException If this method is called */ public function key () { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } }