Source code for vmware.vapi.bindings.common
"""
Bindings common module that contains common code for skeletons and stubs
"""
__author__ = 'VMware, Inc.'
__copyright__ = 'Copyright (c) 2015 VMware, Inc.  All rights reserved.'
from vmware.vapi.exception import CoreException
[docs]def raise_core_exception(msg_list):
    """
    Create and raise a CoreException from a list of messages
    :type msg_list: :class:`vmware.vapi.message.Message`
    :param msg_list: List of messages
    :raise: CoreException if msg list is not empty
    """
    exception = None
    if msg_list:
        for msg in reversed(msg_list):
            if exception:
                exception = CoreException(msg, cause=exception)
            else:
                exception = CoreException(msg)
    if exception is not None:
        raise exception  # pylint: disable-msg=E0702
 
[docs]class NameToTypeResolver(object):
    """
    Helper class that resolves a fully qualified canonical type name to a type
    descriptor. The type name can be a structure name or an error name.
    """
    def __init__(self, type_map):
        """
        Initialize NameToTypeResolver
        :type  type_map: :class:`dict` of :class:`str` and :class:`VapiStruct`
        :param type_map: Type map that contains the canonical names and the
            references to the binding classes for these types.
        """
        self._type_map = type_map
[docs]    def resolve(self, name):
        """
        Type name to be resolved
        """
        return self._type_map.get(name)