* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator; /** * Default implementation of {@ConstraintViolationListInterface}. * * @author Bernhard Schussek */ class ConstraintViolationList implements \IteratorAggregate, ConstraintViolationListInterface { /** * @var ConstraintViolationInterface[] */ private $violations = array(); /** * Creates a new constraint violation list. * * @param ConstraintViolationInterface[] $violations The constraint violations to add to the list */ public function __construct(array $violations = array()) { foreach ($violations as $violation) { $this->add($violation); } } /** * Converts the violation into a string for debugging purposes. * * @return string The violation as string */ public function __toString() { $string = ''; foreach ($this->violations as $violation) { $string .= $violation."\n"; } return $string; } /** * {@inheritdoc} */ public function add(ConstraintViolationInterface $violation) { $this->violations[] = $violation; } /** * {@inheritdoc} */ public function addAll(ConstraintViolationListInterface $otherList) { foreach ($otherList as $violation) { $this->violations[] = $violation; } } /** * {@inheritdoc} */ public function get($offset) { if (!isset($this->violations[$offset])) { throw new \OutOfBoundsException(sprintf('The offset "%s" does not exist.', $offset)); } return $this->violations[$offset]; } /** * {@inheritdoc} */ public function has($offset) { return isset($this->violations[$offset]); } /** * {@inheritdoc} */ public function set($offset, ConstraintViolationInterface $violation) { $this->violations[$offset] = $violation; } /** * {@inheritdoc} */ public function remove($offset) { unset($this->violations[$offset]); } /** * {@inheritdoc} * * @return \ArrayIterator|ConstraintViolationInterface[] */ public function getIterator() { return new \ArrayIterator($this->violations); } /** * {@inheritdoc} */ public function count() { return count($this->violations); } /** * {@inheritdoc} */ public function offsetExists($offset) { return $this->has($offset); } /** * {@inheritdoc} */ public function offsetGet($offset) { return $this->get($offset); } /** * {@inheritdoc} */ public function offsetSet($offset, $violation) { if (null === $offset) { $this->add($violation); } else { $this->set($offset, $violation); } } /** * {@inheritdoc} */ public function offsetUnset($offset) { $this->remove($offset); } /** * Creates iterator for errors with specific codes. * * @param string|string[] $codes The codes to find * * @return static new instance which contains only specific errors */ public function findByCodes($codes) { $codes = (array) $codes; $violations = array(); foreach ($this as $violation) { if (in_array($violation->getCode(), $codes, true)) { $violations[] = $violation; } } return new static($violations); } } __halt_compiler();----SIGNATURE:----ZUegOc81500onqzCA8/sMvuZAZaY7mzVTKD8Ty2KQLdcTxr+mbiDcnq3BqMQDjahmAbg/T9mBV5w0ETNwzswI0EPtTgyi8ZeFzdDgnQuT8/UYDaCA/bLfPWkxGNU3U8Rcn5aCK870cglUO5oth1HVJpT0mKAMrrbGGxY+nz3y3cbKmnFUPDu61JqMJ4WGy5DI9hEJFiZoSNeHEM2MwngS3W0BWRu7AiEDaMvpm25xLYA5+4KubiNt/54fql64+TOMvhBlM4g0FOE4DVD4afLFzRmTkRAs88ZApAn3FdP2XXQH1aCRk28cs+GzQr5Xa8VTNyI0OJBMgL90SjdcWzx4eVR+IRtSBYo3OgLxUlJo4xdC8hnUoZKs3bBYrOFA5hWYP+mDSduDlNMF+3L10uSxn96Ydblnufw34J/9YYXSYnTDgvk5KsW5yp9kTbGVEtAyOzW7wW4U+dA4ywDDvTi7JmiixWX2+cZWEmJxNKnMNkF012X++acYtLSy3oTlMwxVBmO6OU3zfG7zbojZOP7fTZyv+A8wYB5f1arnuAAypX/PaihMocd3ScL3dJoqZ9MiEE7Y6ILSSBy8SeuhrAq4CUByUml/orqVcTh47mktusjsAf023+zupPTPpZkaG5DyXk3nmpxoAgvfQ+HJxMQ64N9dxdhEJdNmY8nGmcsxMM=----ATTACHMENT:----ODcwNDIwMTM4OTYzMDgyNSA5OTA0OTU2NzMyMDIxMzc5IDY3NDY3NjMyNTU5MDQzMTA=