%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/3rdparty/stecman/symfony-console-completion/src/ |
| Current File : /www/varak.net/nextcloud.varak.net/3rdparty/stecman/symfony-console-completion/src/Completion.php |
<?php
namespace Stecman\Component\Symfony\Console\BashCompletion;
use Stecman\Component\Symfony\Console\BashCompletion\Completion\CompletionInterface;
class Completion implements CompletionInterface
{
/**
* The type of input (option/argument) the completion should be run for
*
* @see CompletionInterface::ALL_TYPES
* @var string
*/
protected $type;
/**
* The command name the completion should be run for
*
* @see CompletionInterface::ALL_COMMANDS
* @var string|null
*/
protected $commandName;
/**
* The option/argument name the completion should be run for
*
* @var string
*/
protected $targetName;
/**
* Array of values to return, or a callback to generate completion results with
* The callback can be in any form accepted by call_user_func.
*
* @var callable|array
*/
protected $completion;
/**
* Create a Completion with the command name set to CompletionInterface::ALL_COMMANDS
*
* @deprecated - This will be removed in 1.0.0 as it is redundant and isn't any more concise than what it implements.
*
* @param string $targetName
* @param string $type
* @param array|callable $completion
* @return Completion
*/
public static function makeGlobalHandler($targetName, $type, $completion)
{
return new Completion(CompletionInterface::ALL_COMMANDS, $targetName, $type, $completion);
}
/**
* @param string $commandName
* @param string $targetName
* @param string $type
* @param array|callable $completion
*/
public function __construct($commandName, $targetName, $type, $completion)
{
$this->commandName = $commandName;
$this->targetName = $targetName;
$this->type = $type;
$this->completion = $completion;
}
/**
* Return the stored completion, or the results returned from the completion callback
*
* @return array
*/
public function run()
{
if ($this->isCallable()) {
return call_user_func($this->completion);
}
return $this->completion;
}
/**
* Get type of input (option/argument) the completion should be run for
*
* @see CompletionInterface::ALL_TYPES
* @return string|null
*/
public function getType()
{
return $this->type;
}
/**
* Set type of input (option/argument) the completion should be run for
*
* @see CompletionInterface::ALL_TYPES
* @param string|null $type
*/
public function setType($type)
{
$this->type = $type;
}
/**
* Get the command name the completion should be run for
*
* @see CompletionInterface::ALL_COMMANDS
* @return string|null
*/
public function getCommandName()
{
return $this->commandName;
}
/**
* Set the command name the completion should be run for
*
* @see CompletionInterface::ALL_COMMANDS
* @param string|null $commandName
*/
public function setCommandName($commandName)
{
$this->commandName = $commandName;
}
/**
* Set the option/argument name the completion should be run for
*
* @see setType()
* @return string
*/
public function getTargetName()
{
return $this->targetName;
}
/**
* Get the option/argument name the completion should be run for
*
* @see getType()
* @param string $targetName
*/
public function setTargetName($targetName)
{
$this->targetName = $targetName;
}
/**
* Return the array or callback configured for for the Completion
*
* @return array|callable
*/
public function getCompletion()
{
return $this->completion;
}
/**
* Set the array or callback to return/run when Completion is run
*
* @see run()
* @param array|callable $completion
*/
public function setCompletion($completion)
{
$this->completion = $completion;
}
/**
* Check if the configured completion value is a callback function
*
* @return bool
*/
public function isCallable()
{
return is_callable($this->completion);
}
}