1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 """
21 Implements iQRF model.
22
23 How to use it:
24 import imaker.iqrf
25 root = imaker.iqrf.load(filename)
26 root.result
27 """
28 import amara
29 import logging
30 from imaker.ecore import ContainerBase, Reference
31
32 logging.basicConfig()
33 logger = logging.getLogger("iqrf.model")
34
35
36
38 """ IMaker container. """
42
43 - def load(self, node):
44 """ Load data from XML node. """
45 if hasattr(node, 'result'):
46 logger.debug("IMaker has result attribute.")
47 self.result = Result(self)
48 self.result.load(node.result)
49
50
52 """ Result container. """
58
59 - def load(self, node):
74
76 """ Configuration container. """
77
84
85 - def load(self, node):
86 """ Load data from XML node. """
87 logger.debug("Loading Configuration")
88 self.name = node.name
89 self.filePath = node.filePath
90 for elem in node.xml_xpath('./settings'):
91 setting = Setting(self)
92 setting.load(elem)
93 self.settings.append(setting)
94
95 for ref in node.targetrefs.split(" "):
96 self.targetrefs.append(Reference(self, ref))
97
99
105
106 - def load(self, node):
107 logger.debug("Loading Setting")
108 self.name = node.name
109 self.value = node.value
110 self.ref = Reference(node.ref)
111
112
114 """ Interface container. """
119
120 - def load(self, node):
121 """ Load data from XML node. """
122 logger.debug("Loading Interface")
123 self.name = node.name
124 for cel in node.configurationElements:
125 conf = ConfigurationElement(self)
126 conf.load(cel)
127 self.configurationElements.append(conf)
128
130 """ ConfigurationElement container. """
136
137 - def load(self, node):
138 """ Load data from XML node. """
139 logger.debug("Loading ConfigurationElement")
140 self.name = node.name
141 self.description = node.description
142 self.values = node.values
143
145 """ Target container. """
146
151
152 - def load(self, node):
157
158
159
160
167