@Override
    public void set(String field, String value, Map<String, String[]> data) {
        if (! include(field, value)) {
            return;
        }
        if (ALWAYS_SET_FIELDS.contains(field) || ALWAYS_ADD_FIELDS.contains(field)) {
            setAlwaysInclude(field, value, data);
            return;
        }
        StringSizePair filterKey = filterKey(field, value, data);
        setFilterKey(filterKey, value, data);
    }
@Test
    public void testMinSizeForAlwaysInclude() throws Exception {
        //test that mimes don't get truncated
        Metadata metadata = filter(100, 10, 10000, 100, null, true);

        String mime = getLongestMime().toString();
        metadata.set(Metadata.CONTENT_TYPE, mime);
        assertEquals(mime, metadata.get(Metadata.CONTENT_TYPE));

        //test that other fields are truncated
        metadata.set("dc:title", "abcdefghij");
        assertEquals("abcde", metadata.get("dc:title"));
        assertTruncated(metadata);
    }