# MetaRelation.class.php

Go to the documentation of this file.

    00001 <?php
    00002 /***************************************************************************
    00003  *   Copyright (C) 2006-2007 by Konstantin V. Arkhipov                     *
    00004  *                                                                         *
    00005  *   This program is free software; you can redistribute it and/or modify  *
    00006  *   it under the terms of the GNU Lesser General Public License as        *
    00007  *   published by the Free Software Foundation; either version 3 of the    *
    00008  *   License, or (at your option) any later version.                       *
    00009  *                                                                         *
    00010  ***************************************************************************/
    00011
    00015     final class MetaRelation extends Enumeration
    00016     {
    00017         const ONE_TO_ONE        = 1;
    00018         const ONE_TO_MANY       = 2;
    00019         const MANY_TO_MANY      = 3;
    00020
    00021         protected $names = array(
    00022             self::ONE_TO_ONE        => 'OneToOne',
    00023             self::ONE_TO_MANY       => 'OneToMany',
    00024             self::MANY_TO_MANY      => 'ManyToMany'
    00025         );
    00026
    00030         public static function create($id)
    00031         {
    00032             return new self($id);
    00033         }
    00034
    00038         public static function makeFromName($name)
    00039         {
    00040             $self = self::create(self::getAnyId());
    00041             $id = array_search($name, $self->getNameList());
    00042
    00043             if ($id)
    00044                 return $self->setId($id);
    00045
    00046             throw new WrongArgumentException();
    00047         }
    00048     }
    00049 ?>