Skip to content

Java: Add predicate for getting ordered super interfaces #3818

@Marcono1234

Description

@Marcono1234

Description of the issue

There are cases where it is interesting to know in which order interfaces appear in the implements / extends clause of a class / interface declaration. However, it appears QL currently do not offer a way to determine this. Would it be possible to add a predicate Interface getSuperinterface(int index) or similar?

Use case

I want to find out if a class or interface implements / extends two interfaces which both declare a method with the same signature without overriding a common method, e.g.:

interface A {
    void test();
}

interface B {
   void test();
}

interface Combining extends A, B {
}

Here I would get A and B from Combining by using getASupertype. Assuming that there are the QL result variables superA and superB this creates the problem that it yield duplicate results: super1=A, super2=B and super1=B, super2=A.

If there was a getSuperinterface(int index) predicate you could make sure that super1 appears before super2 in the extends clause, eliminating the duplicate result.

Metadata

Metadata

Assignees

No one assigned

    Labels

    JavaquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions