added generic get() and add() methods
[sfa.git] / sfa / rspecs / elements / element.py
1 class Element(dict):
2
3     fields = {}
4
5     def __init__(self, fields={}, element=None):
6         self.element = element
7         dict.__init__(self, self.fields) 
8         self.update(fields)
9
10     @staticmethod
11     def get(element_class, xml, xpath, namespaces=None):
12         elems = xml.xpath(xpath, namespaces)
13         generic_elems = [element_class(elem.attrib, elem) for elem in elems]
14         return generic_elems
15
16
17     @staticmethod
18     def add(xml, element_class, name, obj):
19         elem = xml.add_element(name)
20         for field in element_class.fields:
21             if field in obj and obj[field]:
22                 elem.set(field, obj[field])
23         return elem