in managementgen/qmfgen/schema.py [0:0]
def __init__ (self, node, typespec):
self.name = None
self.type = None
self.ref = None
self.access = "RO"
self.isIndex = 0
self.isParentRef = 0
self.isGeneralRef = 0
self.isOptional = 0
self.unit = None
self.min = None
self.max = None
self.maxLen = None
self.desc = None
attrs = node.attributes
for idx in range (attrs.length):
key = attrs.item(idx).nodeName
val = attrs.item(idx).nodeValue
if key == 'name':
self.name = makeValidCppSymbol(val)
elif key == 'type':
self.type = Type (val, typespec)
if self.type.type.accessor != 'direct':
raise ValueError ("Class properties must have a type with a direct accessor")
elif key == 'references':
self.ref = val
elif key == 'access':
self.access = val
elif key == 'index':
if val != 'y':
raise ValueError ("Expected 'y' in index attribute")
self.isIndex = 1
elif key == 'parentRef':
if val != 'y':
raise ValueError ("Expected 'y' in parentRef attribute")
self.isParentRef = 1
elif key == 'isGeneralReference':
if val != 'y':
raise ValueError ("Expected 'y' in isGeneralReference attribute")
self.isGeneralRef = 1
elif key == 'optional':
if val != 'y':
raise ValueError ("Expected 'y' in optional attribute")
self.isOptional = 1
elif key == 'unit':
self.unit = val
elif key == 'min':
self.min = val
elif key == 'max':
self.max = val
elif key == 'maxlen':
self.maxLen = val
elif key == 'desc':
self.desc = val
else:
raise ValueError ("Unknown attribute in property '%s'" % key)
if self.access == "RC" and self.isOptional == 1:
raise ValueError ("Properties with ReadCreate access must not be optional (%s)" % self.name)
if self.name == None:
raise ValueError ("Missing 'name' attribute in property")
if self.type == None:
raise ValueError ("Missing 'type' attribute in property")