* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Config\Definition; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; /** * Node which only allows a finite set of values. * * @author Johannes M. Schmitt */ class EnumNode extends ScalarNode { private $values; public function __construct($name, NodeInterface $parent = null, array $values = array()) { $values = array_unique($values); if (empty($values)) { throw new \InvalidArgumentException('$values must contain at least one element.'); } parent::__construct($name, $parent); $this->values = $values; } public function getValues() { return $this->values; } protected function finalizeValue($value) { $value = parent::finalizeValue($value); if (!in_array($value, $this->values, true)) { $ex = new InvalidConfigurationException(sprintf( 'The value %s is not allowed for path "%s". Permissible values: %s', json_encode($value), $this->getPath(), implode(', ', array_map('json_encode', $this->values)))); $ex->setPath($this->getPath()); throw $ex; } return $value; } } __halt_compiler();----SIGNATURE:----bC/uHSy3jm2OB+g6O1j08J8+9UZaJgDuS26FB+Blz+Q/4lKKZqk/DzQVJa/gUGQBF6SZ0FqR0Z3YJcF0jJsH5Xfjv7QhVlPUMzELDPacJhEnOPHqC5/xw2nj9HyZLkPK4f+rEN8AvzQ1TyD3swiI59f9xy4dNy3MFydBPIV480ZOzhW3D8vnTfWNo7O71rv6+ZDe767w98q4TsO1LjqZoKYESf/YJ6zQlSfs+EMzJLNoPNOShBGayIjQWGN8WhVb1Bt3T2Jrcf5hIIvHcRTw6Iwh1gnUUpLRi25Wld8LSHrEIJe7ktsRY291XK6QnpBair+mgYNFQvj70xYK0Z/lrkb/2Idp7BxLdlp9xDdrDnpR0G5VSI8yV7RPi2/NkO/4btOuLALNJ6P98UbK3MJ0z2Dplg4lJzxGjy2NDnwPCQBoKiNhzs9zMBIxxiiHNqUHy9ldi581T6nYQehv7HPf6+7SSIQOmaBIMUTca0ksmttUGMi0vHqejLtHlfIXJnaqU5Cv+j2+s+EOTFg7NMWoxJxV2g5P3VDBuyeaZr22bDabI1NqKHn0FyEkO8UbJ8omGxcNQ2KnlIEuB1KysK3xHfn8ykIMsQYHn/C1lIqZrktZPdQVPgCh3Qs7oh2qyhvREO4wMDzGkShX0Vyjru2ibwqwiGCbrk+H7hlUQTsY6QQ=----ATTACHMENT:----ODYxNDI4NzI1OTEwNjA0NCA0NDQwNTY3NjAyNDI4NDcwIDc0ODQwMDIyNjY1MDY5NzA=