com.intellij.psi.JavaModuleSystem Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of symbol-processing-aa Show documentation
Show all versions of symbol-processing-aa Show documentation
KSP implementation on Kotlin Analysis API
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.psi;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.PsiUtilCore;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @see com.intellij.codeInsight.JavaModuleSystemEx
*/
public interface JavaModuleSystem {
ExtensionPointName EP_NAME = new ExtensionPointName<>("com.intellij.javaModuleSystem");
@NotNull String getName();
default boolean isAccessible(@NotNull PsiClass target, @NotNull PsiElement place) {
PsiFile targetFile = target.getContainingFile();
if (targetFile == null) return true;
PsiUtilCore.ensureValid(targetFile);
String packageName = PsiUtil.getPackageName(target);
return packageName == null || isAccessible(packageName, targetFile, place);
}
boolean isAccessible(@NotNull String targetPackageName, @Nullable PsiFile targetFile, @NotNull PsiElement place);
}