1<?php
2/*
3    +-----------------------------------------------------------------------------+
4    | ILIAS open source                                                           |
5    +-----------------------------------------------------------------------------+
6    | Copyright (c) 1998-2006 ILIAS open source, University of Cologne            |
7    |                                                                             |
8    | This program is free software; you can redistribute it and/or               |
9    | modify it under the terms of the GNU General Public License                 |
10    | as published by the Free Software Foundation; either version 2              |
11    | of the License, or (at your option) any later version.                      |
12    |                                                                             |
13    | This program is distributed in the hope that it will be useful,             |
14    | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
15    | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
16    | GNU General Public License for more details.                                |
17    |                                                                             |
18    | You should have received a copy of the GNU General Public License           |
19    | along with this program; if not, write to the Free Software                 |
20    | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
21    +-----------------------------------------------------------------------------+
22*/
23
24/**
25* List Gui factory for subitems (forum threads, lm pages...)
26*
27* @author Stefan Meyer <meyer@leifos.com>
28* @version $Id$
29*
30*
31* @ingroup ServicesSearch
32*/
33class ilLuceneSubItemListGUIFactory
34{
35    private static $instances = array();
36
37    /**
38     * get instance by type
39     *
40     * @param string	$a_type	Object type
41     * @return
42     * @static
43     */
44    public static function getInstanceByType($a_type, $a_cmd_class)
45    {
46        global $DIC;
47
48        $objDefinition = $DIC['objDefinition'];
49
50        if (isset(self::$instances[$a_type])) {
51            return self::$instances[$a_type];
52        }
53
54        $class = $objDefinition->getClassName($a_type);
55        $location = $objDefinition->getLocation($a_type);
56        $full_class = "ilObj" . $class . "SubItemListGUI";
57        if (@include_once($location . "/class." . $full_class . ".php")) {
58            return self::$instances[$a_type] = new $full_class($a_cmd_class);
59        } else {
60            include_once './Services/Object/classes/class.ilObjectSubItemListGUI.php';
61            return self::$instances[$a_type] = new ilObjectSubItemListGUI($a_cmd_class);
62        }
63    }
64}
65