Esempio n. 1
0
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')))
Esempio n. 2
0
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')))
Esempio n. 3
0
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)
Esempio n. 4
0
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)