def METHOD_NAME(self, ast):
    """
    Indicates whether a this node contains the handed over node.
    :param ast: an arbitrary meta_model node.
    :type ast: AST_
    :return: AST if this or one of the child nodes contains the handed over element.
    :rtype: AST_ or None
    """
    if self.get_start_from() is ast:
        return self
    if self.get_start_from().METHOD_NAME(ast) is not None:
        return self.get_start_from().METHOD_NAME(ast)
    if self.get_end_at() is ast:
        return self
    if self.get_end_at().METHOD_NAME(ast) is not None:
        return self.get_end_at().METHOD_NAME(ast)
    if self.get_block() is ast:
        return self
    if self.get_block().METHOD_NAME(ast) is not None:
        return self.get_block().METHOD_NAME(ast)
    return None