xmlclass/xmlclass.py
changeset 2278 a3ac46366b86
parent 1971 62403f9b6ca9
child 2297 96ca6b056c55
equal deleted inserted replaced
2277:068ccc02f5f2 2278:a3ac46366b86
  1160                     classmembers["delete%s" % elmtname] = generateDeleteMethod(elmtname)
  1160                     classmembers["delete%s" % elmtname] = generateDeleteMethod(elmtname)
  1161             classmembers["set%s" % elmtname] = generateSetMethod(elmtname)
  1161             classmembers["set%s" % elmtname] = generateSetMethod(elmtname)
  1162             classmembers["get%s" % elmtname] = generateGetMethod(elmtname)
  1162             classmembers["get%s" % elmtname] = generateGetMethod(elmtname)
  1163 
  1163 
  1164         classmembers["_init_"] = generateInitMethod(self, classinfos)
  1164         classmembers["_init_"] = generateInitMethod(self, classinfos)
       
  1165         classmembers["_tmp_initial_"] = None
  1165         classmembers["StructurePattern"] = GetStructurePattern(classinfos)
  1166         classmembers["StructurePattern"] = GetStructurePattern(classinfos)
  1166         classmembers["getElementAttributes"] = generateGetElementAttributes(self, classinfos)
  1167         classmembers["getElementAttributes"] = generateGetElementAttributes(self, classinfos)
  1167         classmembers["getElementInfos"] = generateGetElementInfos(self, classinfos)
  1168         classmembers["getElementInfos"] = generateGetElementInfos(self, classinfos)
  1168         classmembers["setElementValue"] = generateSetElementValue(self, classinfos)
  1169         classmembers["setElementValue"] = generateSetElementValue(self, classinfos)
  1169 
  1170 
  1579                 self.set(attribute["name"], attribute["attr_type"]["generate"](attribute["attr_type"]["initial"]()))
  1580                 self.set(attribute["name"], attribute["attr_type"]["generate"](attribute["attr_type"]["initial"]()))
  1580         for element in classinfos["elements"]:
  1581         for element in classinfos["elements"]:
  1581             if element["type"] != CHOICE:
  1582             if element["type"] != CHOICE:
  1582                 initial = GetElementInitialValue(factory, element)
  1583                 initial = GetElementInitialValue(factory, element)
  1583                 if initial is not None:
  1584                 if initial is not None:
       
  1585                     # FIXME: this is looks like dirty hack to fix strange problem with initial[0]
       
  1586                     # changing its type after returning from _init_ method to lxml.etree._Element
       
  1587                     # As a result all methods generated by class factory are lost.
       
  1588                     object.__setattr__(self, "_tmp_initial_", initial)
  1584                     map(self.append, initial)
  1589                     map(self.append, initial)
  1585     return initMethod
  1590     return initMethod
  1586 
  1591 
  1587 
  1592 
  1588 def generateSetMethod(attr):
  1593 def generateSetMethod(attr):