下面列出了怎么用com.intellij.psi.PsiAnonymousClass的API类实例代码及写法,或者点击链接到github查看源代码。
private static PsiElement getRootPsiElementWithStack(PsiClass psiClass, PsiElement psiElement, List<PsiElement> stack) {
stack.add(psiElement);
PsiElement parent = psiElement.getParent();
if (parent == null) {
return null;
}
try {
if (parent instanceof PsiMethod) {
if (PsiUtils.classHasMethod(psiClass, (PsiMethod) parent)) {
return parent;
}
} else if (parent instanceof PsiClassInitializer) {
if (PsiUtils.classHasClassInitializer(psiClass, (PsiClassInitializer) parent)) {
return parent;
}
} else if (parent instanceof PsiField) {
if (PsiUtils.classHasField(psiClass, (PsiField) parent)) {
return parent;
}
} else if (parent instanceof PsiClass) {
if (psiClass.equals(((PsiClass) parent).getContainingClass())) {
return parent;
}
} else if (parent instanceof PsiAnonymousClass) {
if (((PsiAnonymousClass) parent).getContainingClass().equals(psiClass)) {
return parent;
}
}
} catch (Exception ex) {
stack.add(parent);
String preparedStack = prepareStack(stack);
throw new IllegalStateException("Cannot get root element. Stack: " + preparedStack);
}
return getRootPsiElementWithStack(psiClass, parent, stack);
}
private static boolean cannotBeOverriden(final PsiMethod method) {
// In Haxe, private really means what protected means in Java.
// There is no final keyword, either.
final PsiClass parentClass = method.getContainingClass();
return parentClass == null
|| method.isConstructor()
|| method.hasModifierProperty(PsiModifier.STATIC)
|| parentClass instanceof PsiAnonymousClass;
}
public void setAnonymousClassDeclaration(PsiAnonymousClass anonymous) {
this.anonymousClassDeclaration = toPointer(anonymous);
}
public PsiAnonymousClass getAnonymousClassDeclaration() {
return (PsiAnonymousClass) anonymousClassDeclaration.getElement();
}