@classmethod
def _res_cls(cls, name):
    """
        Resolves the possibly namespace name for the current class
        recurring to a recursive approach to the attribute resolution.

        :type name: String
        :param name: The name of the possibly namespace attribute that
        should be used to retrieve the associated entity class (eg:
        product.name, order.id, etc.).
        :rtype: Tuple
        :return: The target class that represents the reference attribute
        described by the namespace (path) based name and the name of the
        final attribute contained in it.
        """
    if not '.' in name:
        return cls, name
    name_s = name.split('.')
    for part in name_s[:-1]:
        info = getattr(cls, part) if hasattr(cls, part) else dict()
        part_type = info.get('type', None)
        cls = part_type._target()
    return cls, name_s[-1]
