public static EffectiveMetaSet of(final Collection<EffectiveMeta> effectiveMetaList) {
        if (NullSafe.isEmptyCollection(effectiveMetaList)) {
            return EMPTY;
        } else {
            Builder builder = null;
            for (final EffectiveMeta effectiveMeta : effectiveMetaList) {
                if (builder == null) {
                    builder = EffectiveMetaSet.builder(effectiveMeta.getFeedName(), effectiveMeta.getTypeName());
                }
                builder.add(effectiveMeta);
            }
            return builder != null
                    ? builder.build()
                    : EMPTY;
        }
    }
Cache the hash code as we are pretty much guaranteed to call hashCode in
EffectiveStreamInternPool
stroom-meta/stroom-meta-api/src/main/java/stroom/meta/api/EffectiveMetaSet.java