[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'])
|
||||
cparent = []
|
||||
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()
|
||||
pass
|
||||
#heritage = parent.
|
||||
|
28
monkHtml.py
28
monkHtml.py
@ -118,11 +118,7 @@ def generate_menu(element, level=1):
|
||||
return ret
|
||||
|
||||
def generate_html_page_name(element):
|
||||
namespaceStack = element.get_namespace()
|
||||
link = ""
|
||||
for name in namespaceStack:
|
||||
link += name + "__"
|
||||
return element.get_node_type() + "_" + link + element.get_name() + '.html'
|
||||
return element.get_doc_website_page_local()
|
||||
|
||||
def generate_name(element):
|
||||
namespaceStack = element.get_namespace()
|
||||
@ -285,11 +281,29 @@ def generate_page(outFolder, header, footer, element):
|
||||
# generate herirage list :
|
||||
if element.get_node_type() == 'class':
|
||||
parent = element.get_parents()
|
||||
debug.verbose("parrent of " + element.get_name() + " : " + str(parent))
|
||||
child = None
|
||||
if parent != []:
|
||||
if len(parent) != 0:
|
||||
file.write('<h2>Object Hierarchy:<h2>\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');
|
||||
|
||||
|
||||
|
@ -57,6 +57,9 @@ class Module:
|
||||
def set_website(self, url):
|
||||
self.webSite = url
|
||||
|
||||
def get_website(self):
|
||||
return self.webSite
|
||||
|
||||
##
|
||||
## @brief set the parsing folder
|
||||
## @param[in] path New path to parse
|
||||
@ -105,8 +108,10 @@ class Module:
|
||||
fileCompleteName = os.path.join(root, filename)
|
||||
debug.debug(" Find a 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_module_link(self)
|
||||
#self.structureLib.complete_display()
|
||||
|
||||
# display the hierarchie of all the class and namespace ...
|
||||
#self.structureLib.debug_display()
|
||||
@ -362,13 +367,13 @@ def get_link_type(type):
|
||||
|
||||
def get_element_with_name(type):
|
||||
global moduleList
|
||||
debug.info("try find : " + str(type) + " ")
|
||||
debug.verbose("try find : " + str(type) + " ")
|
||||
ret = re.sub(r'::', ':', type)
|
||||
ret = ret.split(":")
|
||||
for mod in moduleList:
|
||||
element = mod['node'].get_base_doc_node().find(ret)
|
||||
if element != None:
|
||||
debug.info("we find : " + type + " = " + str(ret) + " " + str(element))
|
||||
debug.debug("we find : " + type + " = " + str(ret) + " " + str(element))
|
||||
return element
|
||||
debug.info("we not find : " + type + " = " + str(ret))
|
||||
debug.warning("we not find : " + type + " = " + str(ret))
|
||||
return None
|
70
monkNode.py
70
monkNode.py
@ -26,6 +26,7 @@ class Node():
|
||||
self.access = None
|
||||
# namespace elements : (set when all element are parsed ...
|
||||
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):
|
||||
return ""
|
||||
@ -39,6 +40,13 @@ class Node():
|
||||
def get_name(self):
|
||||
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):
|
||||
return self.uid
|
||||
|
||||
@ -138,26 +146,71 @@ class Node():
|
||||
pass
|
||||
return ret
|
||||
|
||||
def set_namespace(self, hierarchy = []):
|
||||
# store namespaces:
|
||||
self.namespace = hierarchy
|
||||
def get_doc_website_page(self):
|
||||
if self.moduleLink == None:
|
||||
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 ...
|
||||
if self.subList == None:
|
||||
return
|
||||
if self.nodeType in ['class', 'namespace', 'struct']:
|
||||
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)
|
||||
#debug.info(" ==> " + str(element['node'].get_namespace()))
|
||||
hierarchy.pop()
|
||||
elif self.nodeType in ['library', 'application']:
|
||||
for element in self.subList:
|
||||
element['node'].set_namespace()
|
||||
#debug.info(" ==> " + str(element['node'].get_namespace()))
|
||||
|
||||
def get_namespace(self):
|
||||
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):
|
||||
debug.info("find : " + str(list) + " in " + self.nodeType)
|
||||
debug.verbose("find : " + str(list) + " in " + self.nodeType + "(" + self.name + ")")
|
||||
if len(list) == 0:
|
||||
return None
|
||||
if self.nodeType in ['library', 'application']:
|
||||
@ -170,9 +223,12 @@ class Node():
|
||||
return None
|
||||
if list[0] != self.name:
|
||||
return None
|
||||
if self.nodeType not in ['class', 'namespace', 'struct']:
|
||||
return self
|
||||
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:
|
||||
return None
|
||||
for element in self.subList:
|
||||
|
Loading…
x
Reference in New Issue
Block a user