'Return an appropriate tuple to serialize me.
Depending on whether this broker has cached me or not, this may
return either a full state or a reference to an existing cache.'

def jellyFor(self, jellier):

    if (jellier.invoker is None):
        return getInstanceState(self, jellier)
    luid = jellier.invoker.cachedRemotelyAs(self, 1)
    if (luid is None):
        luid = jellier.invoker.cacheRemotely(self)
        p = jellier.invoker.serializingPerspective
        type_ = self.getTypeToCopyFor(p)
        observer = RemoteCacheObserver(jellier.invoker, self, p)
        state = self.getStateToCacheAndObserveFor(p, observer)
        l = jellier.prepare(self)
        jstate = jellier.jelly(state)
        l.extend([type_, luid, jstate])
        return jellier.preserve(self, l)
    else:
        return (cached_atom, luid)
