public void restore(@NonNull Backup backup) {
        final Snapshot snapshot = (Snapshot) backup;
        final Object data = callback.beforeRestore(snapshot.data);

        for (Map.Entry<Transmittable<Object, Object>, Object> entry : snapshot.transmit2Value.entrySet()) {
            Transmittable<Object, Object> transmittable = entry.getKey();
            try {
                Object transmitBackup = entry.getValue();
                transmittable.restore(transmitBackup);
            } catch (Throwable t) {
                propagateIfFatal(t);
                if (logger.isLoggable(Level.WARNING)) {
                    logger.log(Level.WARNING, "exception when restore for transmittable " + transmittable +
                            "(class " + transmittable.getClass().getName() + "), just ignored; cause: " + t, t);
                }
            }
        }

        callback.afterRestore(data);
    }
Restore the backup values from {@link #replay(Capture)}/{@link #clear()}.

@param backup the backup values from {@link #replay(Capture)}/{@link #clear()}
@see #replay(Capture)
@see #clear()
ttl-core/src/main/java/com/alibaba/crr/composite/CompositeTransmittable.java