use of com.intellij.psi.PsiClass in project smali by JesusFreke.
the class SmaliClassTest method testGetSuperclassForInterface.
public void testGetSuperclassForInterface() {
myFixture.addFileToProject("iface.smali", ".class public interface Liface; .super Ljava/lang/Object;");
SmaliFile file = (SmaliFile) myFixture.addFileToProject("blah.smali", ".class public interface Lblah; .super Ljava/lang/Object; .implements Liface;");
SmaliClass smaliClass = file.getPsiClass();
Assert.assertEquals("blah", smaliClass.getQualifiedName());
PsiClass superClass = smaliClass.getSuperClass();
Assert.assertNotNull(superClass);
Assert.assertEquals("java.lang.Object", smaliClass.getSuperClass().getQualifiedName());
Assert.assertEquals(2, smaliClass.getSupers().length);
Assert.assertEquals("java.lang.Object", smaliClass.getSupers()[0].getQualifiedName());
Assert.assertEquals("iface", smaliClass.getSupers()[1].getQualifiedName());
Assert.assertEquals(1, smaliClass.getSuperTypes().length);
Assert.assertEquals("iface", smaliClass.getSuperTypes()[0].getCanonicalText());
Assert.assertEquals(1, smaliClass.getInterfaces().length);
Assert.assertEquals("iface", smaliClass.getInterfaces()[0].getQualifiedName());
}
use of com.intellij.psi.PsiClass in project smali by JesusFreke.
the class SmaliFieldReference method getContainingClass.
@Nullable
public PsiClass getContainingClass() {
SmaliClassTypeElement containingClassReference = getContainingType();
if (containingClassReference == null) {
return null;
}
PsiClass containingClass = containingClassReference.resolve();
if (containingClass == null) {
return null;
}
return containingClass;
}
use of com.intellij.psi.PsiClass 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());
}
use of com.intellij.psi.PsiClass 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);
}
use of com.intellij.psi.PsiClass in project smali by JesusFreke.
the class ClassMoveTest method doMove.
private void doMove(String oldQualifiedName, final String newPackage) throws Exception {
final PsiClass testClass = myJavaFacade.findClass(oldQualifiedName, GlobalSearchScope.allScope(getProject()));
final List<VirtualFile> contentSourceRoots = JavaProjectRootsUtil.getSuitableDestinationSourceRoots(getProject());
new MoveClassesOrPackagesProcessor(getProject(), new PsiClass[] { testClass }, new AutocreatingSingleSourceRootMoveDestination(new PackageWrapper(getPsiManager(), newPackage), contentSourceRoots.get(0)), false, false, null).run();
}
Aggregations