<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

namespace Doctrine\Tests\Models\Company;

/**
 * Description of CompanyPerson
 *
 * @author robo
 * @DoctrineEntity
 * @DoctrineTable(name="company_persons")
 * @DoctrineDiscriminatorValue("person")
 * @DoctrineInheritanceType("joined")
 * @DoctrineDiscriminatorColumn(name="discr", type="string")
 * @DoctrineSubClasses({"Doctrine\Tests\Models\Company\CompanyEmployee",
        "Doctrine\Tests\Models\Company\CompanyManager"})
 */
class CompanyPerson
{
    /**
     * @DoctrineId
     * @DoctrineColumn(type="integer")
     * @DoctrineGeneratedValue(strategy="auto")
     */
    private $id;
    /**
     * @DoctrineColumn(type="string")
     */
    private $name;
    /**
     * @DoctrineOneToOne(targetEntity="CompanyPerson")
     * @DoctrineJoinColumn(name="spouse_id", referencedColumnName="id")
     */
    private $spouse;

    public function getId() {
        return  $this->id;
    }

    public function getName() {
        return $this->name;
    }

    public function setName($name) {
        $this->name = $name;
    }

    public function getSpouse() {
        return $this->spouse;
    }

    public function setSpouse(CompanyPerson $spouse) {
        if ($spouse !== $this->spouse) {
            $this->spouse = $spouse;
            $this->spouse->setSpouse($this);
        }
    }
}