PyPsiPath ->python-psi-api

This commit is contained in:
Dmitry Jemerov
2012-08-09 12:37:13 +02:00
parent 9e4e59546a
commit ae18478861
3 changed files with 23 additions and 4 deletions
@@ -4,8 +4,6 @@ import com.intellij.psi.PsiElement;
import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.PyQualifiedName;
import com.jetbrains.python.psi.resolve.QualifiedNameResolver;
import com.jetbrains.python.psi.resolve.QualifiedNameResolverImpl;
import com.jetbrains.python.psi.stubs.PyClassNameIndex;
import org.jetbrains.annotations.Nullable;
/**
@@ -25,7 +23,8 @@ public abstract class PyPsiPath {
@Nullable
@Override
public PsiElement resolve(PsiElement context) {
QualifiedNameResolver visitor = new QualifiedNameResolverImpl(myQualifiedName).fromElement(context);
PyPsiFacade pyPsiFacade = PyPsiFacade.getInstance(context.getProject());
QualifiedNameResolver visitor = pyPsiFacade.qualifiedNameResolver(myQualifiedName).fromElement(context);
return visitor.firstResult();
}
}
@@ -40,7 +39,7 @@ public abstract class PyPsiPath {
@Nullable
@Override
public PsiElement resolve(PsiElement context) {
return PyClassNameIndex.findClass(myQualifiedName.toString(), context.getProject());
return PyPsiFacade.getInstance(context.getProject()).findClass(myQualifiedName.toString());
}
}
@@ -4,6 +4,7 @@ import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.jetbrains.python.psi.impl.PyQualifiedName;
import com.jetbrains.python.psi.resolve.QualifiedNameResolver;
import org.jetbrains.annotations.Nullable;
/**
* @author yole
@@ -16,4 +17,7 @@ public abstract class PyPsiFacade {
public abstract QualifiedNameResolver qualifiedNameResolver(String qNameString);
public abstract QualifiedNameResolver qualifiedNameResolver(PyQualifiedName qualifiedName);
@Nullable
public abstract PyClass findClass(String qName);
}
@@ -1,13 +1,23 @@
package com.jetbrains.python.psi.impl;
import com.intellij.openapi.project.Project;
import com.jetbrains.python.psi.PyClass;
import com.jetbrains.python.psi.PyPsiFacade;
import com.jetbrains.python.psi.resolve.QualifiedNameResolver;
import com.jetbrains.python.psi.resolve.QualifiedNameResolverImpl;
import com.jetbrains.python.psi.stubs.PyClassNameIndex;
import org.jetbrains.annotations.Nullable;
/**
* @author yole
*/
public class PyPsiFacadeImpl extends PyPsiFacade {
private final Project myProject;
public PyPsiFacadeImpl(Project project) {
myProject = project;
}
@Override
public QualifiedNameResolver qualifiedNameResolver(String qNameString) {
return new QualifiedNameResolverImpl(qNameString);
@@ -17,4 +27,10 @@ public class PyPsiFacadeImpl extends PyPsiFacade {
public QualifiedNameResolver qualifiedNameResolver(PyQualifiedName qualifiedName) {
return new QualifiedNameResolverImpl(qualifiedName);
}
@Nullable
@Override
public PyClass findClass(String qName) {
return PyClassNameIndex.findClass(qName, myProject);
}
}