Statistics
| Revision:

root / trunk / extensions / ext3Dgui / buildman / bin / bmbase / PlugInManager.py @ 26254

History | View | Annotate | Download (851 Bytes)

1
"""
2
        PlugInManager is a singleton class that manages
3
        plugininstances, and register methods. Each
4
        plugin should call to register itself
5
"""
6
class PlugInManager:
7
        _pluginInstances = {}
8

    
9
        def registerPlugIn(self, id, pluginInstance):
10
                PlugInManager._pluginInstances[id] = pluginInstance
11
                pluginInstance.setId(id)
12

    
13
        def getPlugInInstances(self):
14
                return PlugInManager._pluginInstances
15

    
16
        def getPlugInInstance(self,id):
17
                return PlugInManager._pluginInstances[id]
18

    
19
        def getPlugInInstanceByGoal(self,goal):
20
                for plugin in PlugInManager._pluginInstances.values():
21
                        if goal in plugin.getGoals().keys():
22
                                return plugin
23
                return None
24
        
25
        def supportedGoals(self):
26
                goals = []
27
                for plugin in PlugInManager._pluginInstances.values():
28
                        for g in plugin.getGoals().keys():
29
                                goals.append(g)
30
                return goals
31

    
32
#loading plugins
33
from bmplugins import *
34

    
35