Seditio Source
Root |
./othercms/xenForo 2.2.8/src/vendor/league/flysystem/src/Handler.php
<?php

namespace League\Flysystem;

use
BadMethodCallException;

/**
 * @deprecated
 */
abstract class Handler
{
   
/**
     * @var string
     */
   
protected $path;

   
/**
     * @var FilesystemInterface
     */
   
protected $filesystem;

   
/**
     * Constructor.
     *
     * @param FilesystemInterface $filesystem
     * @param string              $path
     */
   
public function __construct(FilesystemInterface $filesystem = null, $path = null)
    {
       
$this->path = $path;
       
$this->filesystem = $filesystem;
    }

   
/**
     * Check whether the entree is a directory.
     *
     * @return bool
     */
   
public function isDir()
    {
        return
$this->getType() === 'dir';
    }

   
/**
     * Check whether the entree is a file.
     *
     * @return bool
     */
   
public function isFile()
    {
        return
$this->getType() === 'file';
    }

   
/**
     * Retrieve the entree type (file|dir).
     *
     * @return string file or dir
     */
   
public function getType()
    {
       
$metadata = $this->filesystem->getMetadata($this->path);

        return
$metadata ? $metadata['type'] : 'dir';
    }

   
/**
     * Set the Filesystem object.
     *
     * @param FilesystemInterface $filesystem
     *
     * @return $this
     */
   
public function setFilesystem(FilesystemInterface $filesystem)
    {
       
$this->filesystem = $filesystem;

        return
$this;
    }
   
   
/**
     * Retrieve the Filesystem object.
     *
     * @return FilesystemInterface
     */
   
public function getFilesystem()
    {
        return
$this->filesystem;
    }

   
/**
     * Set the entree path.
     *
     * @param string $path
     *
     * @return $this
     */
   
public function setPath($path)
    {
       
$this->path = $path;

        return
$this;
    }

   
/**
     * Retrieve the entree path.
     *
     * @return string path
     */
   
public function getPath()
    {
        return
$this->path;
    }

   
/**
     * Plugins pass-through.
     *
     * @param string $method
     * @param array  $arguments
     *
     * @return mixed
     */
   
public function __call($method, array $arguments)
    {
       
array_unshift($arguments, $this->path);
       
$callback = [$this->filesystem, $method];

        try {
            return
call_user_func_array($callback, $arguments);
        } catch (
BadMethodCallException $e) {
            throw new
BadMethodCallException(
               
'Call to undefined method '
               
. get_called_class()
                .
'::' . $method
           
);
        }
    }
}