|
|
|
@ -3,18 +3,15 @@
|
|
|
|
|
/**
|
|
|
|
|
* Déclaration de la classe CommandLine\Argument\Value\ValueArgument.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
namespace CommandLine\Argument\Value;
|
|
|
|
|
|
|
|
|
|
use Fidit\v3\Exception\InvalidArgument;
|
|
|
|
|
use CommandLine\Argument\ArgumentAbstract;
|
|
|
|
|
use CommandLine\Argument\Value\IArgumentValue;
|
|
|
|
|
use InvalidArgumentException;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Classe abstraite pour les paramètres de type "valeur"
|
|
|
|
|
*
|
|
|
|
|
* @property int $occurMin {@see $_occurMin $_occurMin}
|
|
|
|
|
* @property int|null $occurMax {@see $_occurMax $_occurMax}
|
|
|
|
|
*
|
|
|
|
|
* @package CommandLine\Argument\Value
|
|
|
|
|
*/
|
|
|
|
|
abstract class ValueAbstract extends ArgumentAbstract implements IArgumentValue {
|
|
|
|
@ -39,7 +36,21 @@ abstract class ValueAbstract extends ArgumentAbstract implements IArgumentValue
|
|
|
|
|
|
|
|
|
|
$this->setOptional($optional);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Définit si l'argument est facultatif ou non.
|
|
|
|
|
*
|
|
|
|
|
* @param bool $optional Argument facultatif ?
|
|
|
|
|
*
|
|
|
|
|
* @return $this
|
|
|
|
|
*/
|
|
|
|
|
public function setOptional ($optional = false) {
|
|
|
|
|
$this->setOccurMin($optional ? 0 : 1);
|
|
|
|
|
return $this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @inheritDoc
|
|
|
|
|
*/
|
|
|
|
|
public function getOccurMin () {
|
|
|
|
|
return $this->_occurMin;
|
|
|
|
|
}
|
|
|
|
@ -49,41 +60,29 @@ abstract class ValueAbstract extends ArgumentAbstract implements IArgumentValue
|
|
|
|
|
* @param int $occurMin Le nombre minimum
|
|
|
|
|
*
|
|
|
|
|
* @return $this
|
|
|
|
|
*
|
|
|
|
|
* @throws InvalidArgument Si la valeur n'est pas un entier positif.
|
|
|
|
|
*
|
|
|
|
|
* @see $_occurMin
|
|
|
|
|
*/
|
|
|
|
|
public function setOccurMin ($occurMin) {
|
|
|
|
|
if (!is_numeric($occurMin))
|
|
|
|
|
throw new InvalidArgument($occurMin, 'La valeur n\'est pas un entier');
|
|
|
|
|
if (!is_numeric($occurMin)) {
|
|
|
|
|
throw new InvalidArgumentException('Le nombre minimum d\'ocurrence n\'est pas un entier');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (floor($occurMin) != $occurMin)
|
|
|
|
|
throw new InvalidArgument($occurMin, 'La valeur n\'est pas un entier');
|
|
|
|
|
if (floor($occurMin) != $occurMin) {
|
|
|
|
|
throw new InvalidArgumentException('Le nombre minimum d\'ocurrence n\'est pas un entier');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$int = (int)$occurMin;
|
|
|
|
|
if($int < 0)
|
|
|
|
|
throw new InvalidArgument($occurMin, 'La valeur n\'est pas un entier positif');
|
|
|
|
|
if ($int < 0) {
|
|
|
|
|
throw new InvalidArgumentException('Le nombre minimum d\'ocurrence n\'est pas un entier positif');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->_occurMin = $int;
|
|
|
|
|
return $this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Définit si l'argument est facultatif ou non.
|
|
|
|
|
*
|
|
|
|
|
* @param bool $optional Argument facultatif ?
|
|
|
|
|
*
|
|
|
|
|
* @return $this
|
|
|
|
|
* @inheritDoc
|
|
|
|
|
*/
|
|
|
|
|
public function setOptional($optional = false) {
|
|
|
|
|
try {
|
|
|
|
|
$this->setOccurMin($optional ? 0 : 1);
|
|
|
|
|
}
|
|
|
|
|
catch(InvalidArgument $e) {}
|
|
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getOccurMax () {
|
|
|
|
|
return $this->_occurMax;
|
|
|
|
|
}
|
|
|
|
@ -93,22 +92,22 @@ abstract class ValueAbstract extends ArgumentAbstract implements IArgumentValue
|
|
|
|
|
* @param int|null $occurMax Le nombre maximum
|
|
|
|
|
*
|
|
|
|
|
* @return $this
|
|
|
|
|
*
|
|
|
|
|
* @throws InvalidArgument Si la valeur n'est pas Null ou un entier strictement positif.
|
|
|
|
|
*
|
|
|
|
|
* @see $_occurMax
|
|
|
|
|
*/
|
|
|
|
|
public function setOccurMax ($occurMax) {
|
|
|
|
|
if (!is_null($occurMax)) {
|
|
|
|
|
if (!is_numeric($occurMax))
|
|
|
|
|
throw new InvalidArgument($occurMax, 'La valeur n\'est pas un entier');
|
|
|
|
|
if (!is_numeric($occurMax)) {
|
|
|
|
|
throw new InvalidArgumentException('Le nombre maximum d\'ocurrence n\'est pas un entier');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (floor($occurMax) != $occurMax)
|
|
|
|
|
throw new InvalidArgument($occurMax, 'La valeur n\'est pas un entier');
|
|
|
|
|
if (floor($occurMax) != $occurMax) {
|
|
|
|
|
throw new InvalidArgumentException('Le nombre maximum d\'ocurrence n\'est pas un entier');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$occurMax = (int)$occurMax;
|
|
|
|
|
if ($occurMax <= 0)
|
|
|
|
|
throw new InvalidArgument($occurMax, 'La valeur n\'est pas un entier strictement positif');
|
|
|
|
|
if ($occurMax <= 0) {
|
|
|
|
|
throw new InvalidArgumentException('Le nombre maximum d\'ocurrence n\'est pas un entier strictement positif');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->_occurMax = $occurMax;
|
|
|
|
|