Refactor JavaNamespaceResolver#createNamespaceData
This commit is contained in:
+15
-21
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user