Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / Models / ECommerce / ECommerceCustomer.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/Models/ECommerce/ECommerceCustomer.php b/vendor/doctrine/orm/tests/Doctrine/Tests/Models/ECommerce/ECommerceCustomer.php
new file mode 100644 (file)
index 0000000..a5de9e1
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+
+namespace Doctrine\Tests\Models\ECommerce;
+
+/**
+ * ECommerceCustomer
+ * Represents a registered user of a shopping application.
+ *
+ * @author Giorgio Sironi
+ * @Entity
+ * @Table(name="ecommerce_customers")
+ */
+class ECommerceCustomer
+{
+    /**
+     * @Column(type="integer")
+     * @Id
+     * @GeneratedValue(strategy="AUTO")
+     */
+    private $id;
+
+    /**
+     * @Column(type="string", length=50)
+     */
+    private $name;
+
+    /**
+     * @OneToOne(targetEntity="ECommerceCart", mappedBy="customer", cascade={"persist"})
+     */
+    private $cart;
+
+    /**
+     * Example of a one-one self referential association. A mentor can follow
+     * only one customer at the time, while a customer can choose only one
+     * mentor. Not properly appropriate but it works.
+     *
+     * @OneToOne(targetEntity="ECommerceCustomer", cascade={"persist"}, fetch="EAGER")
+     * @JoinColumn(name="mentor_id", referencedColumnName="id")
+     */
+    private $mentor;
+
+    public function getId() {
+        return $this->id;
+    }
+
+    public function getName() {
+        return $this->name;
+    }
+
+    public function setName($name) {
+        $this->name = $name;
+    }
+
+    public function setCart(ECommerceCart $cart)
+    {
+        if ($this->cart !== $cart) {
+            $this->cart = $cart;
+            $cart->setCustomer($this);
+        }
+    }
+
+    /* Does not properly maintain the bidirectional association! */
+    public function brokenSetCart(ECommerceCart $cart) {
+        $this->cart = $cart;
+    }
+
+    public function getCart() {
+        return $this->cart;
+    }
+
+    public function removeCart()
+    {
+        if ($this->cart !== null) {
+            $cart = $this->cart;
+            $this->cart = null;
+            $cart->removeCustomer();
+        }
+    }
+
+    public function setMentor(ECommerceCustomer $mentor)
+    {
+        $this->mentor = $mentor;
+    }
+
+    public function removeMentor()
+    {
+        $this->mentor = null;
+    }
+
+    public function getMentor()
+    {
+        return $this->mentor;
+    }
+}