[1293] | 1 | <?php |
---|
| 2 | /**************************************************************************\ |
---|
| 3 | * eGroupWare * |
---|
| 4 | * http://www.egroupware.org * |
---|
| 5 | * -------------------------------------------- * |
---|
| 6 | * This program is free software; you can redistribute it and/or modify it * |
---|
| 7 | * under the terms of the GNU General Public License as published by the * |
---|
| 8 | * Free Software Foundation; either version 2 of the License, or (at your * |
---|
| 9 | * option) any later version. * |
---|
| 10 | \**************************************************************************/ |
---|
| 11 | |
---|
| 12 | /** |
---|
| 13 | * Implementa o design pattern factory para o módulo Workflow |
---|
| 14 | * @author Carlos Eduardo Nogueira Gonçalves |
---|
| 15 | * @author Sidnei Augusto Drovetto Jr. - drovetto@gmail.com |
---|
| 16 | * @version 1.1 |
---|
| 17 | * @package Workflow |
---|
| 18 | * @license http://www.gnu.org/copyleft/gpl.html GPL |
---|
| 19 | */ |
---|
| 20 | abstract class BaseFactory { |
---|
| 21 | |
---|
| 22 | /** |
---|
| 23 | * Importa os arquivos da classe |
---|
| 24 | * @param string $input Nome da classe |
---|
| 25 | * @access private |
---|
| 26 | * @return void |
---|
| 27 | */ |
---|
| 28 | abstract protected function _import($input); |
---|
| 29 | |
---|
| 30 | /** |
---|
| 31 | * Armazena referências aos objetos recém criados |
---|
| 32 | * @param string $key O nome da classe |
---|
| 33 | * @param object &$item A instância da classe |
---|
| 34 | * @return boolean True se for salvo. False caso contrário, ou $item não é um objeto |
---|
| 35 | * @access private |
---|
| 36 | */ |
---|
| 37 | abstract protected function _setEntry($key, &$item); |
---|
| 38 | |
---|
| 39 | /** |
---|
| 40 | * Retorna a referência ao objeto armazenado |
---|
| 41 | * @param string $key Nome da classe |
---|
| 42 | * @return object |
---|
| 43 | * @access private |
---|
| 44 | */ |
---|
| 45 | abstract protected function &_getEntry($key); |
---|
| 46 | |
---|
| 47 | /** |
---|
| 48 | * Verifica se uma determinada classe possui objeto armazenado no cache da Factory |
---|
| 49 | * @param string $key Nome da classe |
---|
| 50 | * @return boolean |
---|
| 51 | * @access public |
---|
| 52 | */ |
---|
| 53 | abstract protected function _isEntry($key); |
---|
| 54 | |
---|
| 55 | /** |
---|
| 56 | * Retorna objetos armazenados ou cria novos objetos utilizando o pattern singleton |
---|
| 57 | * @param string $className Nome da classe |
---|
| 58 | * @return object |
---|
| 59 | * @access public |
---|
| 60 | */ |
---|
| 61 | abstract public function &getInstance(); |
---|
| 62 | |
---|
| 63 | /** |
---|
| 64 | * Cria novos objetos |
---|
| 65 | * @param string $className Nome da classe |
---|
| 66 | * @return object |
---|
| 67 | * @access public |
---|
| 68 | */ |
---|
| 69 | abstract public function &newInstance(); |
---|
| 70 | |
---|
| 71 | } |
---|
| 72 | ?> |
---|