// 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;
// Import SPL stuff
use \InvalidArgumentException;
use \SplFileInfo;
+use \SplFileObject;
/**
* A class for writing files
* @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');
$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);
}
$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;
}
* @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())) {