下面列出了com.intellij.psi.PsiMember#getContainingClass ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
static String getInnerClassName(PsiMember field) {
final StringBuilder builder = new StringBuilder();
PsiMember currElement = field;
while ((currElement = currElement.getContainingClass()) != null) {
builder.insert(0, currElement.getName() + ".");
}
final String res = builder.toString();
return res.substring(0, res.length() - 1);
}
@NotNull
Collection<LombokProcessorData> getApplicableProcessors(@NotNull PsiMember psiMember) {
Collection<LombokProcessorData> result = Collections.emptyList();
if (verifyLombokAnnotationPresent(psiMember)) {
result = new ArrayList<>();
addApplicableProcessors(psiMember, result);
final PsiClass psiClass = psiMember.getContainingClass();
if (null != psiClass) {
addApplicableProcessors(psiClass, result);
}
}
return result;
}
private boolean verifyLombokAnnotationPresent(@NotNull PsiMember psiMember) {
if (PsiAnnotationSearchUtil.checkAnnotationsSimpleNameExistsIn(psiMember, registeredAnnotationNames)) {
return true;
}
final PsiClass psiClass = psiMember.getContainingClass();
return null != psiClass && verifyLombokAnnotationPresent(psiClass);
}
@Nullable
private static PsiType eraseFreeTypeParameters(@Nullable PsiType psiType,
@NotNull PsiMember member) {
final PsiClass containingClass = member.getContainingClass();
return eraseFreeTypeParameters(psiType, containingClass);
}