comparison tools/memory.py @ 18:6928e3cb73a8

refactoring: using xml params part II
author Goffi <goffi@goffi.org>
date Fri, 06 Nov 2009 23:31:00 +0100
parents 74a39f40eb6d
children f2a745ca0fbc
comparison
equal deleted inserted replaced
17:74a39f40eb6d 18:6928e3cb73a8
36 36
37 #TODO: mettre Watched dans un plugin 37 #TODO: mettre Watched dans un plugin
38 default_xml = """ 38 default_xml = """
39 <params> 39 <params>
40 <category name="Connection"> 40 <category name="Connection">
41 <param name="JabberID" value="goffi@jabber.goffi.int/TestScript" type="string" /> 41 <param name="JabberID" value="goffi@necton2.int/TestScript" type="string" />
42 <param name="Password" value="toto" type="password" /> 42 <param name="Password" value="toto" type="password" />
43 <param name="Server" value="jabber.goffi.int" type="string" /> 43 <param name="Server" value="necton2.int" type="string" />
44 </category> 44 </category>
45 <category name="File Transfert"> 45 <category name="File Transfert">
46 <param name="IP" value="192.168.0.10" type="string" /> 46 <param name="IP" value="192.168.0.10" type="string" />
47 <param name="Port" value="28915" type="string" /> 47 <param name="Port" value="28915" type="string" />
48 </category> 48 </category>
68 error("Requested param [%s] in category [%s] doesn't exist !" , name, category) 68 error("Requested param [%s] in category [%s] doesn't exist !" , name, category)
69 return none 69 return none
70 return node.getAttribute("value") 70 return node.getAttribute("value")
71 71
72 def getParams(self): 72 def getParams(self):
73 """Return the wold params XML""" 73 """Return the whole params XML"""
74 return self.dom.toxml() 74 return self.dom.toxml()
75 75
76 76 def getParamsForCategory(self, category):
77 """def getParam(self, name, category): 77 """Return node's xml for selected category"""
78 if self.params.has_key(namespace) and self.params[namespace].has_key(name): 78 for node in self.dom.documentElement.childNodes:
79 return self.params[namespace][name] 79 if node.nodeName == "category" and node.getAttribute("name") == category:
80 return ["",""]""" 80 return node.toxml()
81 return "<category />"
81 82
82 def __getParamNode(self, name, category): 83 def __getParamNode(self, name, category):
83 for node in self.dom.documentElement.childNodes: 84 for node in self.dom.documentElement.childNodes:
84 if node.nodeName == "category" and node.getAttribute("name") == category: 85 if node.nodeName == "category" and node.getAttribute("name") == category:
85 params = node.getElementsByTagName("param") 86 params = node.getElementsByTagName("param")
86 for param in params: 87 for param in params:
87 if param.getAttribute("name") == name: 88 if param.getAttribute("name") == name:
88 return param 89 return param
89 return None 90 return None
90 91
91
92 """def getParams(self, namespace):
93 if self.params.has_key(namespace):
94 ret=[]
95 for name in self.params[namespace]:
96 ret.append([name] + self.params[namespace][name])
97 return ret
98 return [[]]"""
99
100 def getParamsCategories(self): 92 def getParamsCategories(self):
101 """return the categories availables""" 93 """return the categories availables"""
102 categories=[] 94 categories=[]
103 for cat in self.dom.getElementsByTagName("category"): 95 for cat in self.dom.getElementsByTagName("category"):
104 categories.append(cat.getAttribute("name")) 96 categories.append(cat.getAttribute("name"))
106 98
107 def setParam(self, name, value, category): 99 def setParam(self, name, value, category):
108 node = self.__getParamNode(name, category) 100 node = self.__getParamNode(name, category)
109 if not node: 101 if not node:
110 return #TODO: throw an error 102 return #TODO: throw an error
111 node.setAttribute(name, value) 103 node.setAttribute("value", value)
112 104
113 """def createParam (self, name, value, type, namespace): 105 """def createParam (self, name, value, type, category):
114 ### TODO: add desciption in params 106 ### TODO: add desciption in params
115 if not self.params.has_key(namespace): 107 if not self.params.has_key(category):
116 self.params[namespace]={} 108 self.params[category]={}
117 self.params[namespace][name]=[value,type];""" 109 self.params[category][name]=[value,type];"""
118 110
119 class Memory: 111 class Memory:
120 """This class manage all persistent informations""" 112 """This class manage all persistent informations"""
121 113
122 def __init__(self): 114 def __init__(self):
222 return self.params.getParamV(name, category) 214 return self.params.getParamV(name, category)
223 215
224 def getParams(self): 216 def getParams(self):
225 return self.params.getParams() 217 return self.params.getParams()
226 218
219 def getParamsForCategory(self, category):
220 return self.params.getParamsForCategory(category)
221
227 def getParamsCategories(self): 222 def getParamsCategories(self):
228 return self.params.getParamsCategories() 223 return self.params.getParamsCategories()
229 224
230 def setParam(self, name, value, category): 225 def setParam(self, name, value, category):
231 return self.params.setParam(name, value, category) 226 return self.params.setParam(name, value, category)