setValueMin($valueMin); $this->setValueMax($valueMax); } /** * @inheritDoc */ public function parseValue ($arg) { if(!$this->_isInt($arg)) throw new RangeException('La valeur n\'est pas un entier valide : ' . $arg); $int = (int)$arg; if($this->hasValueMin()) { if($int < $this->getValueMin()) throw new RangeException('La valeur est inférieure au minimum (' . $this->getValueMin() . ') :' . $int); } if($this->hasValueMax()) { if($int > $this->getValueMax()) throw new RangeException('La valeur est supérieur au maximum (' . $this->getValueMax() . ') : ' . $int); } return $int; } /** * @inheritDoc */ protected function _isInt($val) { if(!is_numeric($val)) return false; if(floor($val) != $val) return false; return true; } /** * @inheritDoc */ public function getValueDescription () { return ($this->hasValueMin() ? $this->getValueMin().' <= ' : '').'integer'.($this->hasValueMax() ? ' <= '.$this->getValueMax() : ''); } /** * La valeur minimumm autorisée * * @return int|null La valeur minimum. * * @see $_valueMin */ public function getValueMin() { return $this->_valueMin; } /** * Définit la valeur minimum autorisée. * * @param int|null $valueMin La valeur minimum. * * @return $this */ public function setValueMin($valueMin = null) { if(!is_null($valueMin) && !$this->_isInt($valueMin)) throw new InvalidArgumentException('La valeur n\'est pas un entier ou null : '.$valueMin); $this->_valueMin = (int)$valueMin; return $this; } /** * Est-ce qu'il existe une limite minimum ? * * @return boolean True s'il existe une limite, sinon False */ public function hasValueMin() { return !is_null($this->getValueMin()); } /** * La valeur maximum autorisée * * @return int|null La valeur maximum. * * @see $_valueMax */ public function getValueMax() { return $this->_valueMax; } /** * Définit la valeur maximum autorisée. * * @param int|null $valueMax La valeur maximum. * * @return $this */ public function setValueMax($valueMax = null) { if(!is_null($valueMax) && !$this->_isInt($valueMax)) throw new InvalidArgumentException('La valeur n\'est pas un entier ou null : '.$valueMax); $this->_valueMax = (int)$valueMax; return $this; } /** * Est-ce qu'il existe une limite maximum ? * * @return boolean True s'il existe une limite, sinon False */ public function hasValueMax() { return !is_null($this->getValueMax()); } }