FormExporter.class.php

Go to the documentation of this file.
00001 <?php
00002 /***************************************************************************
00003  *   Copyright (C) 2008 by Ivan Y. Khvostishkov                            *
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 
00012     final class FormExporter extends PrototypedGetter
00013     {
00014         public function __construct(EntityProto $proto, $object)
00015         {
00016             Assert::isInstance($object, 'Form');
00017             
00018             return parent::__construct($proto, $object);
00019         }
00020         
00021         public function get($name)
00022         {
00023             if (!isset($this->mapping[$name]))
00024                 throw new WrongArgumentException(
00025                     "knows nothing about property '{$name}'"
00026                 );
00027             
00028             $primitive = $this->mapping[$name];
00029             
00030             $formPrimitive = $this->object->get($primitive->getName());
00031             
00032             if ($primitive instanceof PrimitiveForm) {
00033                 // export of inner forms controlled by builder
00034                 return $formPrimitive->getValue();
00035             }
00036             return $formPrimitive->exportValue();
00037         }
00038     }
00039 ?>