def parse_method(tt): """ <!ELEMENT METHOD (QUALIFIER*, (PARAMETER | PARAMETER.REFERENCE | PARAMETER.ARRAY | PARAMETER.REFARRAY)*)> <!ATTLIST METHOD %CIMName; %CIMType; #IMPLIED %ClassOrigin; %Propagated;> """ check_node(tt, 'METHOD', ['NAME'], ['TYPE', 'CLASSORIGIN', 'PROPAGATED'], ['QUALIFIER', 'PARAMETER', 'PARAMETER.REFERENCE', 'PARAMETER.ARRAY', 'PARAMETER.REFARRAY']) qualifiers = byname(list_of_matching(tt, ['QUALIFIER'])) parameters = byname(list_of_matching(tt, ['PARAMETER', 'PARAMETER.REFERENCE', 'PARAMETER.ARRAY', 'PARAMETER.REFARRAY',])) a = attrs(tt) return cim_obj.CIMMethod(a['NAME'], return_type=a.get('TYPE'), parameters=parameters, qualifiers=qualifiers, class_origin=a.get('CLASSORIGIN'), propagated=unpack_boolean(a.get('PROPAGATED')))
def parse_method(tt): """ <!ELEMENT METHOD (QUALIFIER*, (PARAMETER | PARAMETER.REFERENCE | PARAMETER.ARRAY | PARAMETER.REFARRAY)*)> <!ATTLIST METHOD %CIMName; %CIMType; #IMPLIED %ClassOrigin; %Propagated;> """ check_node(tt, 'METHOD', ['NAME'], ['TYPE', 'CLASSORIGIN', 'PROPAGATED'], [ 'QUALIFIER', 'PARAMETER', 'PARAMETER.REFERENCE', 'PARAMETER.ARRAY', 'PARAMETER.REFARRAY' ]) qualifiers = byname(list_of_matching(tt, ['QUALIFIER'])) parameters = byname( list_of_matching(tt, [ 'PARAMETER', 'PARAMETER.REFERENCE', 'PARAMETER.ARRAY', 'PARAMETER.REFARRAY', ])) a = attrs(tt) return cim_obj.CIMMethod(a['NAME'], return_type=a.get('TYPE'), parameters=parameters, qualifiers=qualifiers, class_origin=a.get('CLASSORIGIN'), propagated=unpack_boolean(a.get('PROPAGATED')))
def parse_class(tt): ## <!ELEMENT CLASS (QUALIFIER*, (PROPERTY | PROPERTY.ARRAY | ## PROPERTY.REFERENCE)*, METHOD*)> ## <!ATTLIST CLASS ## %CIMName; ## %SuperClass;> # This doesn't check the ordering of elements, but it's not very important check_node(tt, 'CLASS', ['NAME'], ['SUPERCLASS'], ['QUALIFIER', 'PROPERTY', 'PROPERTY.REFERENCE', 'PROPERTY.ARRAY', 'METHOD']) superclass = attrs(tt).get('SUPERCLASS') # TODO: Return these as maps, not lists properties = byname(list_of_matching(tt, ['PROPERTY', 'PROPERTY.REFERENCE', 'PROPERTY.ARRAY'])) qualifiers = byname(list_of_matching(tt, ['QUALIFIER'])) methods = byname(list_of_matching(tt, ['METHOD'])) return cim_obj.CIMClass(attrs(tt)['NAME'], superclass=superclass, properties=properties, qualifiers=qualifiers, methods=methods)
def parse_class(tt): ## <!ELEMENT CLASS (QUALIFIER*, (PROPERTY | PROPERTY.ARRAY | ## PROPERTY.REFERENCE)*, METHOD*)> ## <!ATTLIST CLASS ## %CIMName; ## %SuperClass;> # This doesn't check the ordering of elements, but it's not very important check_node(tt, 'CLASS', ['NAME'], ['SUPERCLASS'], [ 'QUALIFIER', 'PROPERTY', 'PROPERTY.REFERENCE', 'PROPERTY.ARRAY', 'METHOD' ]) superclass = attrs(tt).get('SUPERCLASS') # TODO: Return these as maps, not lists properties = byname( list_of_matching(tt, ['PROPERTY', 'PROPERTY.REFERENCE', 'PROPERTY.ARRAY'])) qualifiers = byname(list_of_matching(tt, ['QUALIFIER'])) methods = byname(list_of_matching(tt, ['METHOD'])) return cim_obj.CIMClass(attrs(tt)['NAME'], superclass=superclass, properties=properties, qualifiers=qualifiers, methods=methods)