Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

reporegistry: use a mapping for xml element names to class names

Changeset 2217af787825

Parent 76d4161ee051

by Adrian Buehlmann

Changes to one file · Browse files at 2217af787825 Showing diff from parent 76d4161ee051 Diff from another changeset...

 
22
23
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
26
27
 
85
86
87
88
 
89
90
91
 
105
106
107
108
 
109
110
111
 
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
103
104
105
 
106
107
108
109
 
123
124
125
 
126
127
128
129
@@ -22,6 +22,24 @@
 extractXmlElementName = 'reporegextract'  repoRegMimeType = 'application/thg-reporegistry'   +xmlClassMap = { + 'group': 'RepoGroupItem', + 'repo': 'RepoItem', + 'treeitem': 'RepoTreeItem', + } + +inverseXmlClassMap = {} + +def xmlToClass(ele): + return xmlClassMap[ele] + +def classToXml(classname): + if len(inverseXmlClassMap) == 0: + for k,v in xmlClassMap.iteritems(): + inverseXmlClassMap[v] = k + return inverseXmlClassMap[classname] + +  class RepoTreeItem:   def __init__(self, parent=None):   self._parent = parent @@ -85,7 +103,7 @@
  break     def dumpObject(self, xw): - xw.writeStartElement(self.__class__.__name__) + xw.writeStartElement(classToXml(self.__class__.__name__))   self.dump(xw)   xw.writeEndElement()   @@ -105,7 +123,7 @@
   def undumpObject(xr):   print "undumpObject()" - classname = str(xr.name().toString()) + classname = xmlToClass(str(xr.name().toString()))   print "classname = %s" % classname   class_ = getattr(sys.modules[RepoTreeItem.__module__], classname)   obj = class_()