@PublicAPI(usage = ACCESS)
    public JavaClasses importUrl(URL url) {
        return importUrls(singletonList(url));
    }
@Test
    public void creates_relations_between_interfaces_and_subclasses() {
        JavaClasses classes = new ClassFileImporter().importUrl(getClass().getResource("testexamples/classhierarchyimport"));
        JavaClass baseClass = classes.get(BaseClass.class);
        JavaClass otherInterface = classes.get(OtherInterface.class);
        JavaClass subclass = classes.get(Subclass.class);
        JavaClass subSubclass = classes.get(SubSubclass.class);
        JavaClass subSubSubclass = classes.get(SubSubSubclass.class);
        JavaClass subSubSubSubclass = classes.get(SubSubSubSubclass.class);
        JavaClass subinterface = classes.get(Subinterface.class);
        JavaClass otherSubclass = classes.get(OtherSubclass.class);
        JavaClass parentInterface = classes.get(ParentInterface.class);
        JavaClass grandParentInterface = classes.get(GrandParentInterface.class);
        JavaClass someCollection = classes.get(SomeCollection.class);
        JavaClass collectionInterface = classes.get(CollectionInterface.class);

        assertThat(grandParentInterface.getSubclasses()).containsOnly(parentInterface, otherInterface);
        assertThat(grandParentInterface.getAllSubclasses()).containsOnly(
                parentInterface, subinterface, otherInterface,
                baseClass, subclass, otherSubclass, subSubclass, subSubSubclass, subSubSubSubclass, someCollection
        );
        assertThat(parentInterface.getSubclasses()).containsOnly(subinterface, otherSubclass);
        assertThat(parentInterface.getAllSubclasses()).containsOnly(
                subinterface, subclass, subSubclass, subSubSubclass, subSubSubSubclass, someCollection, otherSubclass);
        JavaClass collection = getOnlyElement(collectionInterface.getRawInterfaces());
        assertThat(collection.getAllSubclasses()).containsOnly(collectionInterface, someCollection);
    }