source: sandbox/workflow/branches/609/lib/factory/WorkflowFactory.php @ 2233

Revision 2233, 3.2 KB checked in by pedroerp, 14 years ago (diff)

Ticket #609 - Migração das classes do módulo workflow para a nova factory.

  • 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 * Specialization of the BaseFactory class.
14 * This class is used to instantiate classes by
15 * the workflow module (not by processes). You
16 * cannot access this class directly, but requests
17 * to the Factory frontend class in 'unsecured mode'
18 * will be forwarded to this class.
19 *
20 * @package Factory
21 * @license http://www.gnu.org/copyleft/gpl.html GPL
22 * @author Pedro Eugênio Rocha - pedro.eugenio.rocha@gmail.com
23 */
24final class WorkflowFactory extends BaseFactory {
25
26
27        /**
28         * @var boolean $_instantiated Attribute that stores whether this
29         *              class was instantiated or not. This is used to limit the
30         *              instantiation of this class.
31         * @access private
32         * @static
33         */
34        private static $_instantiated = false;
35
36
37        /**
38         * Construct the class. This function will inform which classes
39         * you will be able to instantiate and where to find it.
40         * This function implements a kind of singleton design pattern too.
41         * @access public
42         */
43        public function __construct() {
44
45                /* don't let the user to instantiate this class more than once. */
46                if (self::$_instantiated)
47                        throw new Exception("You can't instantiate this class again.");
48
49                /* registering allowed classes */
50                $this->registerFileInfo('WorkflowObjects', 'class.WorkflowObjects.inc.php', 'inc');
51                $this->registerFileInfo('WorkflowWatcher', 'class.WorkflowWatcher.inc.php', 'inc');
52                $this->registerFileInfo('WorkflowLDAP', 'class.WorkflowLDAP.inc.php', 'inc');
53                $this->registerFileInfo('WorkflowSecurity', 'class.WorkflowSecurity.inc.php', 'inc');
54                $this->registerFileInfo('ResourcesRedirector', 'class.ResourcesRedirector.inc.php', 'inc');
55                $this->registerFileInfo('TemplateServer', 'class.TemplateServer.inc.php', 'inc');
56                $this->registerFileInfo('CachedLDAP', 'class.CachedLDAP.inc.php', 'inc');
57                $this->registerFileInfo('BrowserInfo', 'class.BrowserInfo.inc.php', 'inc');
58
59                $this->registerFileInfo('workflow_smarty', 'class.workflow_smarty.inc.php', 'inc');
60                $this->registerFileInfo('workflow_acl', 'class.workflow_acl.inc.php', 'inc');
61                $this->registerFileInfo('workflow_processmanager', 'class.workflow_processmanager.inc.php', 'inc');
62
63                $this->registerFileInfo('bo_participants', 'class.bo_participants.inc.php', 'inc');
64
65                /* registering egw class example */
66                $this->registerFileInfo('phpgw', 'class.phpgw.inc.php', '', EGW_INC_ROOT);
67                $this->registerFileInfo('db', 'class.db.inc.php', '', EGW_INC_ROOT);
68                $this->registerFileInfo('accounts', 'class.accounts.inc.php', '', EGW_INC_ROOT);
69
70                /* ok. no more instances of this class.. */
71                self::$_instantiated = true;
72        }
73}
74
75?>
Note: See TracBrowser for help on using the repository browser.