private void putAll(final AttributeMap source,
                        final AttributeMap dest) {
        if (source != null && dest != null) {
            source.forEach((k, v) -> {
                if (source.isOverrideEmbeddedMeta()) {
                    dest.remove(k);
                    dest.put(k, v);
                } else {
                    dest.putIfAbsent(k, v);
                }
            });
        }
    }
Type of {@link StreamHandler} that store the entries in the stream store.
There are some special rules about how this works.
<p>
This is fine if all the meta data indicates they belong to the same feed
001.meta, 002.meta, 001.dat, 002.dat
<p>
This is also fine if 001.meta indicates 001 belongs to feed X and 002.meta
indicates 001 belongs to feed Y 001.meta, 002.meta, 001.dat, 002.dat
<p>
However if the global header map indicates feed Z and the files are send in
the following order 001.dat, 002.dat, 001.meta, 002.meta this is invalid ....
I.E. as soon as we add non header stream for a feed if the header turns out
to be different we must throw an exception.
stroom-receive/stroom-receive-common/src/main/java/stroom/receive/common/StreamTargetStreamHandler.java