source: sandbox/workflow/2.0/lib/BaseFactory.php @ 1293

Revision 1293, 2.2 KB checked in by gbisotto, 15 years ago (diff)

Ticket #609 - Modificada a classe Factory e ProcessFactory? para automatizaro acesso ao objetos

  • Property svn:executable set to *
Line 
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 */
20abstract 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?>
Note: See TracBrowser for help on using the repository browser.