|
|
|
from __future__ import print_function |
|
__author__ = 'Tony Beltramelli - www.tonybeltramelli.com' |
|
|
|
|
|
class Node: |
|
def __init__(self, key, parent_node, content_holder): |
|
self.key = key |
|
self.parent = parent_node |
|
self.children = [] |
|
self.content_holder = content_holder |
|
|
|
def add_child(self, child): |
|
self.children.append(child) |
|
|
|
def show(self): |
|
print(self.key) |
|
for child in self.children: |
|
child.show() |
|
|
|
def render(self, mapping, rendering_function=None): |
|
content = "" |
|
for child in self.children: |
|
content += child.render(mapping, rendering_function) |
|
|
|
value = mapping[self.key] |
|
if rendering_function is not None: |
|
value = rendering_function(self.key, value) |
|
|
|
if len(self.children) != 0: |
|
value = value.replace(self.content_holder, content) |
|
|
|
return value |
|
|