Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / Models / DDC964 / DDC964User.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/Models/DDC964/DDC964User.php b/vendor/doctrine/orm/tests/Doctrine/Tests/Models/DDC964/DDC964User.php
new file mode 100644 (file)
index 0000000..608f42d
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+
+namespace Doctrine\Tests\Models\DDC964;
+
+use Doctrine\Common\Collections\ArrayCollection;
+
+/**
+ * @MappedSuperclass
+ */
+class DDC964User
+{
+
+    /**
+     * @Id
+     * @GeneratedValue
+     * @Column(type="integer", name="user_id", length=150)
+     */
+    protected $id;
+
+    /**
+     * @Column(name="user_name", nullable=true, unique=false, length=250)
+     */
+    protected $name;
+
+    /**
+     * @var ArrayCollection
+     *
+     * @ManyToMany(targetEntity="DDC964Group", inversedBy="users", cascade={"persist", "merge", "detach"})
+     * @JoinTable(name="ddc964_users_groups",
+     *  joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
+     *  inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")}
+     * )
+     */
+    protected $groups;
+
+    /**
+     * @var DDC964Address
+     *
+     * @ManyToOne(targetEntity="DDC964Address", cascade={"persist", "merge"})
+     * @JoinColumn(name="address_id", referencedColumnName="id")
+     */
+    protected $address;
+
+    /**
+     * @param string $name
+     */
+    public function __construct($name = null)
+    {
+        $this->name     = $name;
+        $this->groups   = new ArrayCollection;
+    }
+
+    /**
+     * @return integer
+     */
+    public function getId()
+    {
+        return $this->id;
+    }
+
+    /**
+     * @return string
+     */
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    /**
+     * @param string $name
+     */
+    public function setName($name)
+    {
+        $this->name = $name;
+    }
+
+    /**
+     * @param DDC964Group $group
+     */
+    public function addGroup(DDC964Group $group)
+    {
+        $this->groups->add($group);
+        $group->addUser($this);
+    }
+
+    /**
+     * @return ArrayCollection
+     */
+    public function getGroups()
+    {
+        return $this->groups;
+    }
+
+    /**
+     * @return DDC964Address
+     */
+    public function getAddress()
+    {
+        return $this->address;
+    }
+
+    /**
+     * @param DDC964Address $address
+     */
+    public function setAddress(DDC964Address $address)
+    {
+        $this->address = $address;
+    }
+
+    public static function loadMetadata($metadata)
+    {
+        $metadata->mapField(array(
+           'id'         => true,
+           'fieldName'  => 'id',
+           'type'       => 'integer',
+           'columnName' => 'user_id',
+           'length'     => 150,
+        ));
+        $metadata->mapField(array(
+            'fieldName' => 'name',
+            'type'      => 'string',
+            'columnName'=> 'user_name',
+            'nullable'  => true,
+            'unique'    => false,
+            'length'    => 250,
+        ));
+
+        $metadata->mapManyToOne(array(
+           'fieldName'      => 'address',
+           'targetEntity'   => 'DDC964Address',
+           'cascade'        => array('persist','merge'),
+           'joinColumn'     => array('name'=>'address_id', 'referencedColumnMame'=>'id'),
+        ));
+
+        $metadata->mapManyToMany(array(
+           'fieldName'      => 'groups',
+           'targetEntity'   => 'DDC964Group',
+           'inversedBy'     => 'users',
+           'cascade'        => array('persist','merge','detach'),
+           'joinTable'      => array(
+                'name'          => 'ddc964_users_groups',
+                'joinColumns'   => array(array(
+                    'name'=>'user_id',
+                    'referencedColumnName'=>'id',
+                )),
+                'inverseJoinColumns'=>array(array(
+                    'name'=>'group_id',
+                    'referencedColumnName'=>'id',
+                ))
+           )
+        ));
+
+        $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadataInfo::GENERATOR_TYPE_AUTO);
+    }
+}
\ No newline at end of file