def METHOD_NAME(self, name):
    """
    Return existing or new integral.
    Parameters
    ----------
    name : str
        The name can either be a non-negative integer, a string
        representation of a non-negative integer (the integral
        order) or 'a' (automatic order) or a string beginning with
        'i' (existing custom integral name).
    """
    if name == 'a':
        raise NotImplementedError
    elif isinstance(name, basestr) and (name[0] == 'i'):
        try:
            obj = self[name]
        except IndexError:
            raise ValueError('integral %s is not defined!' % name)
    else:
        try:
            order = int(name)
        except:
            raise ValueError('unsupported integral reference! (%s)' % name)
        name = '__o%d' % order
        if name in self.names:
            obj = self[name]
        else:
            # Create new integral, and add it to self.
            obj = Integral(name, order=order)
            self.append(obj)
    return obj