Refactor JavaNamespaceResolver#createNamespaceData

This commit is contained in:
Pavel V. Talanov
2012-11-05 14:18:46 +04:00
parent 9fbecf515e
commit d1057348da
@@ -132,7 +132,7 @@ public final class JavaNamespaceResolver {
@NotNull FqName fqName, @NotNull FqName fqName,
@NotNull NamespaceDescriptor namespaceDescriptor @NotNull NamespaceDescriptor namespaceDescriptor
) { ) {
PsiDeclarationProvider namespaceData = createNamespaceData(fqName, namespaceDescriptor); PsiDeclarationProvider namespaceData = createDeclarationProvider(fqName, namespaceDescriptor);
JavaPackageScope javaPackageScope; JavaPackageScope javaPackageScope;
if (namespaceData == null) { if (namespaceData == null) {
javaPackageScope = null; javaPackageScope = null;
@@ -148,30 +148,24 @@ public final class JavaNamespaceResolver {
} }
@Nullable @Nullable
private PsiDeclarationProvider createNamespaceData( private PsiDeclarationProvider createDeclarationProvider(
@NotNull FqName fqName, @NotNull FqName fqName,
@NotNull NamespaceDescriptor namespaceDescriptor @NotNull NamespaceDescriptor namespaceDescriptor
) { ) {
PsiPackage psiPackage; PsiClass psiClass = getPsiClassForJavaPackageScope(fqName);
PsiClass psiClass; PsiPackage psiPackage = psiClassFinder.findPsiPackage(fqName);
if (psiClass != null || psiPackage != null) {
lookingForPsi: trace.record(JavaBindingContext.JAVA_NAMESPACE_KIND, namespaceDescriptor, JavaNamespaceKind.PROPER);
{ return PsiDeclarationProviderFactory.createDeclarationProviderForPackage(psiPackage, psiClass, fqName);
psiClass = getPsiClassForJavaPackageScope(fqName);
psiPackage = psiClassFinder.findPsiPackage(fqName);
if (psiClass != null || psiPackage != null) {
trace.record(JavaBindingContext.JAVA_NAMESPACE_KIND, namespaceDescriptor, JavaNamespaceKind.PROPER);
break lookingForPsi;
}
psiClass = psiClassFinder.findPsiClass(fqName, PsiClassFinder.RuntimeClassesHandleMode.IGNORE);
if (psiClass != null && !psiClass.isEnum()) {
trace.record(JavaBindingContext.JAVA_NAMESPACE_KIND, namespaceDescriptor, JavaNamespaceKind.CLASS_STATICS);
break lookingForPsi;
}
return null;
} }
return PsiDeclarationProviderFactory.createDeclarationProviderForPackage(psiPackage, psiClass, fqName);
psiClass = psiClassFinder.findPsiClass(fqName, PsiClassFinder.RuntimeClassesHandleMode.IGNORE);
if (psiClass != null && !psiClass.isEnum()) {
trace.record(JavaBindingContext.JAVA_NAMESPACE_KIND, namespaceDescriptor, JavaNamespaceKind.CLASS_STATICS);
return PsiDeclarationProviderFactory.createDeclarationProviderForPackage(psiPackage, psiClass, fqName);
}
return null;
} }
private void cache(@NotNull FqName fqName, @Nullable JavaPackageScope packageScope) { private void cache(@NotNull FqName fqName, @Nullable JavaPackageScope packageScope) {