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 ?>