[DEV] get object parrent
This commit is contained in:
parent
6f3875af3e
commit
7370fb2ac9
@ -66,7 +66,7 @@ class Class(Node.Node):
|
|||||||
parent = module.get_element_with_name(self.inherit[0]['class'])
|
parent = module.get_element_with_name(self.inherit[0]['class'])
|
||||||
cparent = []
|
cparent = []
|
||||||
if parent != None:
|
if parent != None:
|
||||||
debug.info(" plop : " + self.name + " " + str(parent) + " " + parent.get_name())
|
#debug.info(" plop : " + self.name + " " + str(parent) + " " + parent.get_name())
|
||||||
cparent = parent.get_parents()
|
cparent = parent.get_parents()
|
||||||
pass
|
pass
|
||||||
#heritage = parent.
|
#heritage = parent.
|
||||||
|
28
monkHtml.py
28
monkHtml.py
@ -118,11 +118,7 @@ def generate_menu(element, level=1):
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
def generate_html_page_name(element):
|
def generate_html_page_name(element):
|
||||||
namespaceStack = element.get_namespace()
|
return element.get_doc_website_page_local()
|
||||||
link = ""
|
|
||||||
for name in namespaceStack:
|
|
||||||
link += name + "__"
|
|
||||||
return element.get_node_type() + "_" + link + element.get_name() + '.html'
|
|
||||||
|
|
||||||
def generate_name(element):
|
def generate_name(element):
|
||||||
namespaceStack = element.get_namespace()
|
namespaceStack = element.get_namespace()
|
||||||
@ -285,11 +281,29 @@ def generate_page(outFolder, header, footer, element):
|
|||||||
# generate herirage list :
|
# generate herirage list :
|
||||||
if element.get_node_type() == 'class':
|
if element.get_node_type() == 'class':
|
||||||
parent = element.get_parents()
|
parent = element.get_parents()
|
||||||
|
debug.verbose("parrent of " + element.get_name() + " : " + str(parent))
|
||||||
child = None
|
child = None
|
||||||
if parent != []:
|
if len(parent) != 0:
|
||||||
file.write('<h2>Object Hierarchy:<h2>\n')
|
file.write('<h2>Object Hierarchy:<h2>\n')
|
||||||
file.write('<pre>\n');
|
file.write('<pre>\n');
|
||||||
file.write(str(parent));
|
level = 0
|
||||||
|
revertList = []
|
||||||
|
for elemmm in reversed(parent):
|
||||||
|
revertList.append(elemmm)
|
||||||
|
revertList.append({'access':'me', 'class':element.get_displayable_name()})
|
||||||
|
for parentElem in revertList:
|
||||||
|
access = ""
|
||||||
|
if parentElem['access'] == 'public':
|
||||||
|
access = "+"
|
||||||
|
elif parentElem['access'] == 'protected':
|
||||||
|
access = "#"
|
||||||
|
elif parentElem['access'] == 'private':
|
||||||
|
access = "-"
|
||||||
|
file.write(white_space(level * 4))
|
||||||
|
if level != 0:
|
||||||
|
file.write('+--> ')
|
||||||
|
file.write(access + parentElem['class'] + '<br/>')
|
||||||
|
level += 1
|
||||||
file.write('</pre>\n');
|
file.write('</pre>\n');
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,6 +57,9 @@ class Module:
|
|||||||
def set_website(self, url):
|
def set_website(self, url):
|
||||||
self.webSite = url
|
self.webSite = url
|
||||||
|
|
||||||
|
def get_website(self):
|
||||||
|
return self.webSite
|
||||||
|
|
||||||
##
|
##
|
||||||
## @brief set the parsing folder
|
## @brief set the parsing folder
|
||||||
## @param[in] path New path to parse
|
## @param[in] path New path to parse
|
||||||
@ -105,8 +108,10 @@ class Module:
|
|||||||
fileCompleteName = os.path.join(root, filename)
|
fileCompleteName = os.path.join(root, filename)
|
||||||
debug.debug(" Find a file : '" + fileCompleteName + "'")
|
debug.debug(" Find a file : '" + fileCompleteName + "'")
|
||||||
self.add_file(fileCompleteName)
|
self.add_file(fileCompleteName)
|
||||||
# all file is parset ==> now we create the namespacing of ll elements:
|
# all file is parset ==> now we create the namespacing of all elements:
|
||||||
self.structureLib.set_namespace()
|
self.structureLib.set_namespace()
|
||||||
|
self.structureLib.set_module_link(self)
|
||||||
|
#self.structureLib.complete_display()
|
||||||
|
|
||||||
# display the hierarchie of all the class and namespace ...
|
# display the hierarchie of all the class and namespace ...
|
||||||
#self.structureLib.debug_display()
|
#self.structureLib.debug_display()
|
||||||
@ -362,13 +367,13 @@ def get_link_type(type):
|
|||||||
|
|
||||||
def get_element_with_name(type):
|
def get_element_with_name(type):
|
||||||
global moduleList
|
global moduleList
|
||||||
debug.info("try find : " + str(type) + " ")
|
debug.verbose("try find : " + str(type) + " ")
|
||||||
ret = re.sub(r'::', ':', type)
|
ret = re.sub(r'::', ':', type)
|
||||||
ret = ret.split(":")
|
ret = ret.split(":")
|
||||||
for mod in moduleList:
|
for mod in moduleList:
|
||||||
element = mod['node'].get_base_doc_node().find(ret)
|
element = mod['node'].get_base_doc_node().find(ret)
|
||||||
if element != None:
|
if element != None:
|
||||||
debug.info("we find : " + type + " = " + str(ret) + " " + str(element))
|
debug.debug("we find : " + type + " = " + str(ret) + " " + str(element))
|
||||||
return element
|
return element
|
||||||
debug.info("we not find : " + type + " = " + str(ret))
|
debug.warning("we not find : " + type + " = " + str(ret))
|
||||||
return None
|
return None
|
70
monkNode.py
70
monkNode.py
@ -26,6 +26,7 @@ class Node():
|
|||||||
self.access = None
|
self.access = None
|
||||||
# namespace elements : (set when all element are parsed ...
|
# namespace elements : (set when all element are parsed ...
|
||||||
self.namespace = []
|
self.namespace = []
|
||||||
|
self.moduleLink = None # this is a link on the main application node or library node (usefull to get the website ...)
|
||||||
|
|
||||||
def to_str(self):
|
def to_str(self):
|
||||||
return ""
|
return ""
|
||||||
@ -39,6 +40,13 @@ class Node():
|
|||||||
def get_name(self):
|
def get_name(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_displayable_name(self):
|
||||||
|
ret = ""
|
||||||
|
for namespace in self.namespace:
|
||||||
|
ret += namespace + "::"
|
||||||
|
ret += self.name
|
||||||
|
return ret
|
||||||
|
|
||||||
def get_uid(self):
|
def get_uid(self):
|
||||||
return self.uid
|
return self.uid
|
||||||
|
|
||||||
@ -138,26 +146,71 @@ class Node():
|
|||||||
pass
|
pass
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def set_namespace(self, hierarchy = []):
|
def get_doc_website_page(self):
|
||||||
# store namespaces:
|
if self.moduleLink == None:
|
||||||
self.namespace = hierarchy
|
return ""
|
||||||
|
ret = self.moduleLink.get_website()
|
||||||
|
ret += "/"
|
||||||
|
ret += self.get_node_type()
|
||||||
|
ret += "_"
|
||||||
|
for name in self.namespace:
|
||||||
|
ret += name + "__"
|
||||||
|
ret += self.name
|
||||||
|
ret += '.html'
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def get_doc_website_page_local(self):
|
||||||
|
ret = self.get_node_type()
|
||||||
|
ret += "_"
|
||||||
|
for name in self.namespace:
|
||||||
|
ret += name + "__"
|
||||||
|
ret += self.name
|
||||||
|
ret += '.html'
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def set_module_link(self, module):
|
||||||
|
self.moduleLink = module
|
||||||
# set for all sub elements ...
|
# set for all sub elements ...
|
||||||
if self.subList == None:
|
if self.subList == None:
|
||||||
return
|
return
|
||||||
if self.nodeType in ['class', 'namespace', 'struct']:
|
if self.nodeType in ['class', 'namespace', 'struct']:
|
||||||
for element in self.subList:
|
for element in self.subList:
|
||||||
hierarchy.append(self.get_name())
|
element['node'].set_module_link(module)
|
||||||
|
elif self.nodeType in ['library', 'application']:
|
||||||
|
for element in self.subList:
|
||||||
|
element['node'].set_module_link(module)
|
||||||
|
|
||||||
|
def set_namespace(self, hierarchy = []):
|
||||||
|
#debug.info('set namespace : ' + self.name + ' : ' + str(hierarchy))
|
||||||
|
# store namespaces:
|
||||||
|
for tmpName in hierarchy:
|
||||||
|
self.namespace.append(tmpName)
|
||||||
|
# set for all sub elements ...
|
||||||
|
if self.subList == None:
|
||||||
|
return
|
||||||
|
if self.nodeType in ['class', 'namespace', 'struct']:
|
||||||
|
for element in self.subList:
|
||||||
|
hierarchy.append(self.name)
|
||||||
element['node'].set_namespace(hierarchy)
|
element['node'].set_namespace(hierarchy)
|
||||||
|
#debug.info(" ==> " + str(element['node'].get_namespace()))
|
||||||
hierarchy.pop()
|
hierarchy.pop()
|
||||||
elif self.nodeType in ['library', 'application']:
|
elif self.nodeType in ['library', 'application']:
|
||||||
for element in self.subList:
|
for element in self.subList:
|
||||||
element['node'].set_namespace()
|
element['node'].set_namespace()
|
||||||
|
#debug.info(" ==> " + str(element['node'].get_namespace()))
|
||||||
|
|
||||||
def get_namespace(self):
|
def get_namespace(self):
|
||||||
return self.namespace
|
return self.namespace
|
||||||
|
|
||||||
|
def complete_display(self):
|
||||||
|
debug.info(str(self.namespace) + ' : ' + self.name)
|
||||||
|
if self.subList == None:
|
||||||
|
return
|
||||||
|
for element in self.subList:
|
||||||
|
element['node'].complete_display()
|
||||||
|
|
||||||
def find(self, list):
|
def find(self, list):
|
||||||
debug.info("find : " + str(list) + " in " + self.nodeType)
|
debug.verbose("find : " + str(list) + " in " + self.nodeType + "(" + self.name + ")")
|
||||||
if len(list) == 0:
|
if len(list) == 0:
|
||||||
return None
|
return None
|
||||||
if self.nodeType in ['library', 'application']:
|
if self.nodeType in ['library', 'application']:
|
||||||
@ -170,9 +223,12 @@ class Node():
|
|||||||
return None
|
return None
|
||||||
if list[0] != self.name:
|
if list[0] != self.name:
|
||||||
return None
|
return None
|
||||||
if self.nodeType not in ['class', 'namespace', 'struct']:
|
|
||||||
return self
|
|
||||||
tmpList = list[1:]
|
tmpList = list[1:]
|
||||||
|
if len(tmpList) == 0:
|
||||||
|
return self
|
||||||
|
elif self.nodeType not in ['class', 'namespace', 'struct']:
|
||||||
|
# have other sub element and other elemetn than upper can have sub element ...
|
||||||
|
return None
|
||||||
if self.subList == None:
|
if self.subList == None:
|
||||||
return None
|
return None
|
||||||
for element in self.subList:
|
for element in self.subList:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user