1.1 --- a/libxml2dom/xmlrpc.py Fri Sep 26 23:09:12 2008 +0200
1.2 +++ b/libxml2dom/xmlrpc.py Sat Sep 27 22:09:52 2008 +0200
1.3 @@ -66,23 +66,23 @@
1.4 "Serialise, under the 'parent', the given 'value' object."
1.5
1.6 if isinstance(value, (str, int, float, bool)):
1.7 - valueElement = parent.createValue(typenames[value.__class__.__name__], 1)
1.8 + valueElement = parent.makeValue(typenames[value.__class__.__name__])
1.9 valueElement.container.value = str(value)
1.10
1.11 elif isinstance(value, datetime.datetime):
1.12 - valueElement = parent.createValue("dateTime.iso8601", 1)
1.13 + valueElement = parent.makeValue("dateTime.iso8601")
1.14 valueElement.container.value = value.strftime("%Y%m%dT%H:%M:%S")
1.15
1.16 elif isinstance(value, (tuple, list)):
1.17 - array = parent.createValue("array", 1).container
1.18 - dataElement = array.createData(1)
1.19 + array = parent.makeValue("array").container
1.20 + dataElement = array.makeData()
1.21 for v in value:
1.22 self.serialise_value(dataElement, v)
1.23
1.24 elif isinstance(value, dict):
1.25 - struct = parent.createValue("struct", 1).container
1.26 + struct = parent.makeValue("struct").container
1.27 for k, v in value.items():
1.28 - member = struct.createMember(1)
1.29 + member = struct.makeMember()
1.30 member.memberName = str(k)
1.31 self.serialise_value(member, v)
1.32
1.33 @@ -113,16 +113,20 @@
1.34
1.35 # Node construction methods.
1.36
1.37 - def createMethodCall(self, insert=0):
1.38 - e = self.ownerDocument.createElement("methodCall")
1.39 - if insert:
1.40 - self.add_or_replace_element(e)
1.41 + def createMethodCall(self):
1.42 + return self.ownerDocument.createElement("methodCall")
1.43 +
1.44 + def makeMethodCall(self):
1.45 + e = self.createMethodCall()
1.46 + self.add_or_replace_element(e)
1.47 return e
1.48
1.49 - def createMethodResponse(self, insert=0):
1.50 - e = self.ownerDocument.createElement("methodResponse")
1.51 - if insert:
1.52 - self.add_or_replace_element(e)
1.53 + def createMethodResponse(self):
1.54 + return self.ownerDocument.createElement("methodResponse")
1.55 +
1.56 + def makeMethodResponse(self):
1.57 + e = self.createMethodResponse()
1.58 + self.add_or_replace_element(e)
1.59 return e
1.60
1.61 class XMLRPCMethodElement(XMLRPCNode):
1.62 @@ -158,9 +162,9 @@
1.63 return None
1.64
1.65 def _setParameterValues(self, values):
1.66 - params = self.createParameters(1)
1.67 + params = self.makeParameters()
1.68 for value in values:
1.69 - param = params.createParameter(1)
1.70 + param = params.makeParameter()
1.71 self.serialise_value(param, value)
1.72
1.73 def _parameters(self):
1.74 @@ -171,22 +175,28 @@
1.75
1.76 # Node construction methods.
1.77
1.78 - def createMethodName(self, insert=0):
1.79 - e = self.ownerDocument.createElement("methodName")
1.80 - if insert:
1.81 - self.add_or_replace_element(e)
1.82 + def createMethodName(self):
1.83 + return self.ownerDocument.createElement("methodName")
1.84 +
1.85 + def makeMethodName(self):
1.86 + e = self.createMethodName()
1.87 + self.add_or_replace_element(e)
1.88 return e
1.89
1.90 - def createParameters(self, insert=0):
1.91 - e = self.ownerDocument.createElement("params")
1.92 - if insert:
1.93 - self.add_or_replace_element(e)
1.94 + def createParameters(self):
1.95 + return self.ownerDocument.createElement("params")
1.96 +
1.97 + def makeParameters(self):
1.98 + e = self.createParameters()
1.99 + self.add_or_replace_element(e)
1.100 return e
1.101
1.102 - def createFault(self, insert=0):
1.103 - e = self.ownerDocument.createElement("fault")
1.104 - if insert:
1.105 - self.add_or_replace_element(e)
1.106 + def createFault(self):
1.107 + return self.ownerDocument.createElement("fault")
1.108 +
1.109 + def makeFault(self):
1.110 + e = self.createFault()
1.111 + self.add_or_replace_element(e)
1.112 return e
1.113
1.114 fault = property(_fault)
1.115 @@ -214,7 +224,7 @@
1.116 # Sequence emulation.
1.117
1.118 def append(self, value):
1.119 - param = self.createParameter(1)
1.120 + param = self.makeParameter()
1.121 self.serialise_value(param, value)
1.122
1.123 def values(self):
1.124 @@ -225,10 +235,12 @@
1.125
1.126 # Node construction methods.
1.127
1.128 - def createParameter(self, insert=0):
1.129 - e = self.ownerDocument.createElement("param")
1.130 - if insert:
1.131 - self.appendChild(e)
1.132 + def createParameter(self):
1.133 + return self.ownerDocument.createElement("param")
1.134 +
1.135 + def makeParameter(self):
1.136 + e = self.createParameter()
1.137 + self.appendChild(e)
1.138 return e
1.139
1.140 parameters = property(_parameters)
1.141 @@ -262,7 +274,7 @@
1.142
1.143 def append(self, value):
1.144 if self.valueElement is None:
1.145 - self.createValue("array", 1)
1.146 + self.makeValue("array")
1.147 self.contents.append(value)
1.148
1.149 def values(self):
1.150 @@ -279,13 +291,16 @@
1.151
1.152 # Node construction methods.
1.153
1.154 - def createValue(self, typename=None, insert=0):
1.155 + def createValue(self, typename=None):
1.156 value = self.ownerDocument.createElement("value")
1.157 if typename is not None:
1.158 contents = self.ownerDocument.createElement(typename)
1.159 value.appendChild(contents)
1.160 - if insert:
1.161 - self.add_or_replace_element(value)
1.162 + return value
1.163 +
1.164 + def makeValue(self, typename=None):
1.165 + value = self.createValue(typename)
1.166 + self.add_or_replace_element(value)
1.167 return value
1.168
1.169 valueElement = property(_valueElement)
1.170 @@ -310,7 +325,7 @@
1.171
1.172 def append(self, value):
1.173 if self.dataElement is None:
1.174 - self.createData(1)
1.175 + self.makeData()
1.176 self.serialise_value(self.dataElement, value)
1.177
1.178 def values(self):
1.179 @@ -321,10 +336,12 @@
1.180
1.181 # Node construction methods.
1.182
1.183 - def createData(self, insert=0):
1.184 - e = self.ownerDocument.createElement("data")
1.185 - if insert:
1.186 - self.add_or_replace_element(e)
1.187 + def createData(self):
1.188 + return self.ownerDocument.createElement("data")
1.189 +
1.190 + def makeData(self):
1.191 + e = self.createData()
1.192 + self.add_or_replace_element(e)
1.193 return e
1.194
1.195 dataElement = property(_dataElement)
1.196 @@ -355,7 +372,7 @@
1.197
1.198 def append(self, item):
1.199 name, value = item
1.200 - member = self.createMember(1)
1.201 + member = self.makeMember()
1.202 member.memberName = name
1.203 self.serialise_value(member, value)
1.204
1.205 @@ -375,10 +392,12 @@
1.206
1.207 # Node construction methods.
1.208
1.209 - def createMember(self, insert=0):
1.210 - e = self.ownerDocument.createElement("member")
1.211 - if insert:
1.212 - self.appendChild(e)
1.213 + def createMember(self):
1.214 + return self.ownerDocument.createElement("member")
1.215 +
1.216 + def makeMember(self):
1.217 + e = self.createMember()
1.218 + self.appendChild(e)
1.219 return e
1.220
1.221 members = property(_members)
1.222 @@ -406,13 +425,16 @@
1.223
1.224 # Node construction methods.
1.225
1.226 - def createValue(self, typename=None, insert=0):
1.227 + def createValue(self, typename=None):
1.228 value = self.ownerDocument.createElement("value")
1.229 if typename is not None:
1.230 contents = self.ownerDocument.createElement(typename)
1.231 value.appendChild(contents)
1.232 - if insert:
1.233 - self.appendChild(value)
1.234 + return value
1.235 +
1.236 + def makeValue(self, typename=None):
1.237 + value = self.createValue(typename)
1.238 + self.appendChild(value)
1.239 return value
1.240
1.241 contents = property(_contents)
1.242 @@ -470,19 +492,24 @@
1.243
1.244 # Node construction methods.
1.245
1.246 - def createName(self, insert=0):
1.247 - e = self.ownerDocument.createElement("name")
1.248 - if insert:
1.249 - self.add_or_replace_element(e)
1.250 + def createName(self):
1.251 + return self.ownerDocument.createElement("name")
1.252 +
1.253 + def makeName(self):
1.254 + e = self.createName()
1.255 + self.add_or_replace_element(e)
1.256 return e
1.257
1.258 - def createValue(self, typename=None, insert=0):
1.259 + def createValue(self, typename=None):
1.260 value = self.ownerDocument.createElement("value")
1.261 if typename is not None:
1.262 contents = self.ownerDocument.createElement(typename)
1.263 value.appendChild(contents)
1.264 - if insert:
1.265 - self.add_or_replace_element(value)
1.266 + return value
1.267 +
1.268 + def makeValue(self, typename=None):
1.269 + value = self.createValue(typename)
1.270 + self.add_or_replace_element(value)
1.271 return value
1.272
1.273 nameElement = property(_nameElement)
1.274 @@ -535,13 +562,13 @@
1.275 if self.container is self:
1.276 return XMLRPCStringElement._value(self)
1.277 else:
1.278 - return None
1.279 + return self.container.value
1.280
1.281 def _setValue(self, value):
1.282 if self.container is self:
1.283 - return XMLRPCStringElement._setValue(self, value)
1.284 + XMLRPCStringElement._setValue(self, value)
1.285 else:
1.286 - raise xml.dom.DOMException(xml.dom.NOT_SUPPORTED_ERR)
1.287 + self.container.value = value
1.288
1.289 def _contents(self):
1.290 if self.container is self: