Search in sources :

Example 1 with SmaliImplementsList

use of org.jf.smalidea.psi.impl.SmaliImplementsList in project smali by JesusFreke.

the class SmaliImplementsExtendsTest method testNormalClass.

public void testNormalClass() {
    myFixture.addFileToProject("my/pkg/base.smali", ".class public Lmy/pkg/base; .super Ljava/lang/Object;");
    myFixture.addFileToProject("my/pkg/iface.smali", ".class public Lmy/pkg/iface; .super Ljava/lang/Object;");
    myFixture.addFileToProject("my/pkg/iface2.smali", ".class public Lmy/pkg/iface2; .super Ljava/lang/Object;");
    SmaliFile file = (SmaliFile) myFixture.addFileToProject("my/pkg/blah.smali", ".class public Lmy/pkg/blah; .implements Lmy/pkg/iface; .super Lmy/pkg/base; " + ".implements Lmy/pkg/iface2;");
    SmaliClass smaliClass = file.getPsiClass();
    SmaliExtendsList extendsList = smaliClass.getExtendsList();
    Assert.assertEquals(1, extendsList.getReferencedTypes().length);
    Assert.assertEquals("my.pkg.base", extendsList.getReferencedTypes()[0].getCanonicalText());
    Assert.assertEquals(1, extendsList.getReferenceNames().length);
    Assert.assertEquals("my.pkg.base", extendsList.getReferenceNames()[0]);
    Assert.assertEquals(1, smaliClass.getExtendsListTypes().length);
    Assert.assertEquals("my.pkg.base", smaliClass.getExtendsListTypes()[0].getCanonicalText());
    PsiClass resolvedSuper = extendsList.getReferencedTypes()[0].resolve();
    Assert.assertNotNull(resolvedSuper);
    Assert.assertEquals("my.pkg.base", resolvedSuper.getQualifiedName());
    SmaliImplementsList implementsList = smaliClass.getImplementsList();
    Assert.assertEquals(2, implementsList.getReferencedTypes().length);
    Assert.assertEquals("my.pkg.iface", implementsList.getReferencedTypes()[0].getCanonicalText());
    Assert.assertEquals("my.pkg.iface2", implementsList.getReferencedTypes()[1].getCanonicalText());
    Assert.assertEquals(2, implementsList.getReferenceNames().length);
    Assert.assertEquals("my.pkg.iface", implementsList.getReferenceNames()[0]);
    Assert.assertEquals("my.pkg.iface2", implementsList.getReferenceNames()[1]);
    Assert.assertEquals(2, smaliClass.getImplementsListTypes().length);
    Assert.assertEquals("my.pkg.iface", smaliClass.getImplementsListTypes()[0].getCanonicalText());
    Assert.assertEquals("my.pkg.iface2", smaliClass.getImplementsListTypes()[1].getCanonicalText());
    PsiClass resolvedInterface = implementsList.getReferencedTypes()[0].resolve();
    Assert.assertNotNull(resolvedInterface);
    Assert.assertEquals("my.pkg.iface", resolvedInterface.getQualifiedName());
    resolvedInterface = implementsList.getReferencedTypes()[1].resolve();
    Assert.assertNotNull(resolvedInterface);
    Assert.assertEquals("my.pkg.iface2", resolvedInterface.getQualifiedName());
}
Also used : SmaliFile(org.jf.smalidea.psi.impl.SmaliFile) SmaliClass(org.jf.smalidea.psi.impl.SmaliClass) PsiClass(com.intellij.psi.PsiClass) SmaliExtendsList(org.jf.smalidea.psi.impl.SmaliExtendsList) SmaliImplementsList(org.jf.smalidea.psi.impl.SmaliImplementsList)

Example 2 with SmaliImplementsList

use of org.jf.smalidea.psi.impl.SmaliImplementsList in project smali by JesusFreke.

the class SmaliImplementsExtendsTest method testInterface.

public void testInterface() {
    myFixture.addFileToProject("my/pkg/iface.smali", ".class public Lmy/pkg/iface; .super Ljava/lang/Object;");
    myFixture.addFileToProject("my/pkg/iface2.smali", ".class public Lmy/pkg/iface2; .super Ljava/lang/Object;");
    SmaliFile file = (SmaliFile) myFixture.addFileToProject("my/pkg/blah.smali", ".class public interface Lmy/pkg/blah; .implements Lmy/pkg/iface; .super Ljava/lang/Object; " + ".implements Lmy/pkg/iface2;");
    SmaliClass smaliClass = file.getPsiClass();
    SmaliExtendsList extendsList = smaliClass.getExtendsList();
    Assert.assertEquals(2, extendsList.getReferencedTypes().length);
    Assert.assertEquals("my.pkg.iface", extendsList.getReferencedTypes()[0].getCanonicalText());
    Assert.assertEquals("my.pkg.iface2", extendsList.getReferencedTypes()[1].getCanonicalText());
    Assert.assertEquals(2, extendsList.getReferenceNames().length);
    Assert.assertEquals("my.pkg.iface", extendsList.getReferenceNames()[0]);
    Assert.assertEquals("my.pkg.iface2", extendsList.getReferenceNames()[1]);
    Assert.assertEquals(2, smaliClass.getExtendsListTypes().length);
    Assert.assertEquals("my.pkg.iface", smaliClass.getExtendsListTypes()[0].getCanonicalText());
    Assert.assertEquals("my.pkg.iface2", smaliClass.getExtendsListTypes()[1].getCanonicalText());
    PsiClass resolvedInterface = extendsList.getReferencedTypes()[0].resolve();
    Assert.assertNotNull(resolvedInterface);
    Assert.assertEquals("my.pkg.iface", resolvedInterface.getQualifiedName());
    resolvedInterface = extendsList.getReferencedTypes()[1].resolve();
    Assert.assertNotNull(resolvedInterface);
    Assert.assertEquals("my.pkg.iface2", resolvedInterface.getQualifiedName());
    SmaliImplementsList implementsList = smaliClass.getImplementsList();
    Assert.assertEquals(0, implementsList.getReferencedTypes().length);
    Assert.assertEquals(0, implementsList.getReferenceNames().length);
    Assert.assertEquals(0, smaliClass.getImplementsListTypes().length);
}
Also used : SmaliFile(org.jf.smalidea.psi.impl.SmaliFile) SmaliClass(org.jf.smalidea.psi.impl.SmaliClass) PsiClass(com.intellij.psi.PsiClass) SmaliExtendsList(org.jf.smalidea.psi.impl.SmaliExtendsList) SmaliImplementsList(org.jf.smalidea.psi.impl.SmaliImplementsList)

Aggregations

PsiClass (com.intellij.psi.PsiClass)2 SmaliClass (org.jf.smalidea.psi.impl.SmaliClass)2 SmaliExtendsList (org.jf.smalidea.psi.impl.SmaliExtendsList)2 SmaliFile (org.jf.smalidea.psi.impl.SmaliFile)2 SmaliImplementsList (org.jf.smalidea.psi.impl.SmaliImplementsList)2