TYPO3 API  SVNRelease
ClassInfo.php
Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 2010 Extbase Team
00006 *  All rights reserved
00007 *
00008 *  This class is a backport of the corresponding class of FLOW3.
00009 *  All credits go to the v5 team.
00010 *
00011 *  This script is part of the TYPO3 project. The TYPO3 project is
00012 *  free software; you can redistribute it and/or modify
00013 *  it under the terms of the GNU General Public License as published by
00014 *  the Free Software Foundation; either version 2 of the License, or
00015 *  (at your option) any later version.
00016 *
00017 *  The GNU General Public License can be found at
00018 *  http://www.gnu.org/copyleft/gpl.html.
00019 *
00020 *  This script is distributed in the hope that it will be useful,
00021 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 *  GNU General Public License for more details.
00024 *
00025 *  This copyright notice MUST APPEAR in all copies of the script!
00026 ***************************************************************/
00027 /**
00028  * Value object containing the relevant informations for a class,
00029  * this object is build by the classInfoFactory - or could also be restored from a cache
00030  * 
00031  * @author Daniel Pötzinger
00032  */
00033 class Tx_Extbase_Object_Container_ClassInfo {
00034 
00035     /**
00036      * The classname of the class where the infos belong to
00037      * @var string
00038      */
00039     private $className;
00040 
00041     /**
00042      * The constructor Dependencies for the class in the format:
00043      *   array(
00044      *     0 => array( <-- parameters for argument 1
00045      *       'name' => <arg name>, <-- name of argument
00046      *       'dependency' => <classname>, <-- if the argument is a class, the type of the argument
00047      *       'defaultvalue' => <mixed>) <-- if the argument is optional, its default value
00048      *     ),
00049      *     1 => ...
00050      *   )
00051      * 
00052      * @var array
00053      */
00054     private $constructorArguments;
00055     
00056     /**
00057      * All setter injections in the format
00058      *  array (<nameOfMethod> => <classNameToInject> )
00059      * 
00060      * @var array
00061      */
00062     private $injectMethods;
00063 
00064     /**
00065      * 
00066      * @param string $className
00067      * @param array $constructorArguments
00068      * @param array $injectMethods
00069      */
00070     public function __construct($className, array $constructorArguments, array $injectMethods) {
00071         $this->className = $className;
00072         $this->constructorArguments = $constructorArguments;
00073         $this->injectMethods = $injectMethods;
00074     }
00075     
00076     /**
00077      * @return the $className
00078      */
00079     public function getClassName() {
00080         return $this->className;
00081     }
00082 
00083     /**
00084      * @return the $constructorArguments
00085      */
00086     public function getConstructorArguments() {
00087         return $this->constructorArguments;
00088     }
00089 
00090     /**
00091      * @return the $injectMethods
00092      */
00093     public function getInjectMethods() {
00094         return $this->injectMethods;
00095     }
00096     
00097     /**
00098      * @return the $injectMethods
00099      */
00100     public function hasInjectMethods() {
00101         return (count($this->injectMethods) > 0);
00102     }
00103 }