static AttributeMapFilter wrap(final List<AttributeMapFilter> attributeMapFilters) {
        if (NullSafe.isEmptyCollection(attributeMapFilters)) {
            LOGGER.debug("Returning permissive instance");
            return PermissiveAttributeMapFilter.getInstance();
        } else if (attributeMapFilters.size() == 1) {
            final AttributeMapFilter first = NullSafe.first(attributeMapFilters);
            if (first != null) {
                LOGGER.debug(() -> "Returning " + first.getClass().getSimpleName());
                return first;
            } else {
                LOGGER.debug("Returning permissive instance");
                return PermissiveAttributeMapFilter.getInstance();
            }
        } else {
            final MultiAttributeMapFilter filter = new MultiAttributeMapFilter(attributeMapFilters);
            LOGGER.debug("Returning {}", filter);
            return filter;
        }
    }
Combine multiple filters into a single filter. Each one will be called in turn
until one returns false.
If null or empty, a permissive filter will be returned.
stroom-receive/stroom-receive-common/src/main/java/stroom/receive/common/AttributeMapFilter.java