Version 1
[yaffs-website] / vendor / symfony / validator / ConstraintViolationList.php
diff --git a/vendor/symfony/validator/ConstraintViolationList.php b/vendor/symfony/validator/ConstraintViolationList.php
new file mode 100644 (file)
index 0000000..3490237
--- /dev/null
@@ -0,0 +1,161 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * 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 <bschussek@gmail.com>
+ */
+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);
+    }
+}