+ def mergeType(self, type):
+ L_int = self.getNode('type-list')
+ if L_int is None:
+ error("Catalog.mergeType : 'type-list' is not found")
+ return
+ for t in L_int.childs:
+ if t.attrs["name"] == type.attrs["name"]:
+ t.merge(type)
+ return
+
+ L_int.addChild(type)
+
+class Member(Tree):
+ def __init__(self, name,type):
+ Tree.__init__(self, 'member')
+ self.setAttrib("name",name)
+ self.setAttrib("type",type)
+
+class Type(Tree):
+ def __init__(self, name,kind):
+ Tree.__init__(self, 'type')
+ self.setAttrib("name",name)
+ self.setAttrib("kind",kind)
+
+ def merge(self,t):
+ self.setAttrib("kind",t.attrs["kind"])
+
+class SeqType(Tree):
+ def __init__(self, name,content):
+ Tree.__init__(self, 'sequence')
+ self.setAttrib("name",name)
+ self.setAttrib("content",content)
+
+ def merge(self,t):
+ self.setAttrib("content",t.attrs["content"])
+
+class StructType(Tree):
+ def __init__(self, name):
+ Tree.__init__(self, 'struct')
+ self.setAttrib("name",name)
+
+ def merge(self,t):
+ #remove childs and replace by t childs
+ self.childs=[]
+ for c in t.childs:
+ self.childs.append(c)
+
+class ObjType(Tree):
+ def __init__(self, name):
+ Tree.__init__(self, 'objref')
+ self.setAttrib("name",name)
+
+ def merge(self,t):
+ RepoId=t.attrs.get("id")
+ if RepoId:
+ self.setAttrib("id",RepoId)
+ #remove childs and replace by t childs
+ self.childs=[]
+ for c in t.childs:
+ self.childs.append(c)