def METHOD_NAME(self, object):
    """ Yield objects for the next observer following this observer, in an
    ObserverGraph.
    An observer may yield many items for the next observer, e.g. the
    observer is observing many traits on the given instance of HasTraits
    or the observer is observing items in a container. The observer can
    evaluate whether the value is appropriate to be passed on, or skip some
    if the observer is expected to do so.
    An observer may yield one item if that is what should be passed onto
    the next observer.
    An observer may find nothing to be passed onto the next observer, and
    has no need to complain about that. Then the observer may yield
    nothing.
    Observers are allowed to raise here if it is appropriate to do so,
    e.g. to help catch usage errors.
    Parameters
    ----------
    object: object
        Object provided by the ``iter_objects`` methods from another
        observers or directly by the user.
        No guarantee can be made about the type of the object.
        Concrete implementations should do the sanity check where
        appropriate.
    Yields
    ------
    value : object
    """
    raise NotImplementedError("iter_objects must be implemented.")