@PublicAPI(usage = ACCESS)
    public Set<Dependency> getDirectDependenciesToSelf() {
        return reverseDependencies.getDirectDependenciesTo(this);
    }
@Test
    public void direct_dependencies_to_self_by_class_type_parameters() {
        class ClassOtherTypeSignaturesDependOn {
        }
        @SuppressWarnings("unused")
        class FirstDependingOnOtherThroughTypeParameter<T extends ClassOtherTypeSignaturesDependOn> {
        }
        @SuppressWarnings("unused")
        class SecondDependingOnOtherThroughTypeParameter<
                U extends Map<?, List<? super Set<? extends ClassOtherTypeSignaturesDependOn>>>,
                V extends Map<ClassOtherTypeSignaturesDependOn, ClassOtherTypeSignaturesDependOn>> {
        }

        JavaClass someClass = importClasses(ClassOtherTypeSignaturesDependOn.class, FirstDependingOnOtherThroughTypeParameter.class, SecondDependingOnOtherThroughTypeParameter.class)
                .get(ClassOtherTypeSignaturesDependOn.class);

        assertThatDependencies(someClass.getDirectDependenciesToSelf())
                .contain(from(FirstDependingOnOtherThroughTypeParameter.class).to(ClassOtherTypeSignaturesDependOn.class).inLocation(getClass(), 0)
                        .withDescriptionContaining("type parameter 'T' depending on")

                        .from(SecondDependingOnOtherThroughTypeParameter.class).to(ClassOtherTypeSignaturesDependOn.class).inLocation(getClass(), 0)
                        .withDescriptionContaining("type parameter 'U' depending on")

                        .from(SecondDependingOnOtherThroughTypeParameter.class).to(ClassOtherTypeSignaturesDependOn.class).inLocation(getClass(), 0)
                        .withDescriptionContaining("type parameter 'V' depending on")
                );
    }