@PublicAPI(usage = ACCESS)
    public JavaClasses that(DescribedPredicate<? super JavaClass> predicate) {
        Map<String, JavaClass> matchingElements = classes.entrySet().stream()
                .filter(e -> predicate.test(e.getValue()))
                .collect(toMap(Map.Entry::getKey, Map.Entry::getValue));
        String newDescription = String.format("%s that %s", description, predicate.getDescription());
        return new JavaClasses(defaultPackage, matchingElements, newDescription);
    }
@Test
    public void restriction_on_classes_should_filter_the_elements() {
        JavaClasses onlySomeClass = ALL_CLASSES.that(haveTheNameOf(SomeClass.class));

        assertThat(onlySomeClass).containsExactly(SOME_CLASS);
    }