本文整理汇总了Java中com.intellij.psi.impl.source.PsiClassImpl类的典型用法代码示例。如果您正苦于以下问题:Java PsiClassImpl类的具体用法?Java PsiClassImpl怎么用?Java PsiClassImpl使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PsiClassImpl类属于com.intellij.psi.impl.source包,在下文中一共展示了PsiClassImpl类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: findEnclosingName
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Nullable
private static String findEnclosingName(final SourcePosition position) {
PsiElement element = findElementAt(position);
while (true) {
element = PsiTreeUtil.getParentOfType(element, GrTypeDefinition.class, PsiClassImpl.class);
if (element == null
|| (element instanceof GrTypeDefinition && !((GrTypeDefinition)element).isAnonymous())
|| (element instanceof PsiClassImpl && ((PsiClassImpl)element).getName() != null)
) {
break;
}
}
if (element != null) {
return getClassNameForJvm((PsiClass)element);
}
return null;
}
示例2: getOuterClassName
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Nullable
private static String getOuterClassName(final SourcePosition position) {
AccessToken accessToken = ApplicationManager.getApplication().acquireReadActionLock();
try {
PsiElement element = findElementAt(position);
if (element == null) return null;
PsiElement sourceImage = PsiTreeUtil.getParentOfType(element, GrClosableBlock.class, GrTypeDefinition.class, PsiClassImpl.class);
if (sourceImage instanceof PsiClass) {
return getClassNameForJvm((PsiClass)sourceImage);
}
return null;
}
finally {
accessToken.finish();
}
}
示例3: visitClass
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Override
public void visitClass(PsiClass aClass) {
if (InspectionPsiUtil.isAbstactClass(aClass)) {
return;
}
if (!(aClass instanceof PsiClassImpl)) {
return;
}
Project project = aClass.getProject();
PsiClass activityClass = InspectionPsiUtil.createPsiClass(QUALIFIED_NAME_OF_SUPER_CLASS, project);
if (activityClass == null || !aClass.isInheritor(activityClass,
true)) {
return;
}
PsiMethod[] methods = aClass.getMethods();
for (PsiMethod method : methods) {
if (isTargetMethod(method)) {
return;
}
}
registerProblem(aClass);
}
示例4: visitClass
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Override
public void visitClass(PsiClass aClass) {
if (InspectionPsiUtil.isAbstactClass(aClass)) {
return;
}
if (!(aClass instanceof PsiClassImpl)) {
return;
}
if (!isFragment(aClass)) {
return;
}
PsiMethod[] methods = aClass.getMethods();
for (PsiMethod method : methods) {
if (isNewInstanceMethod(aClass, method)) {
return;
}
}
registerProblem(aClass);
}
示例5: TestIsImplicitUsageForClass
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Test
public void TestIsImplicitUsageForClass() throws Exception {
ModuleHelper helper = mock(ModuleHelper.class);
PsiClass c = mock(PsiClassImpl.class);
PsiMethod method = mock(PsiMethod.class);
PsiModifierList list = mock(PsiModifierList.class);
PsiAnnotation annotation = mock(PsiAnnotation.class);
when(annotation.getQualifiedName()).thenReturn(BeforeStep.class.getCanonicalName());
when(list.getAnnotations()).thenReturn(new PsiAnnotation[]{annotation});
when(method.getModifierList()).thenReturn(list);
when(c.getMethods()).thenReturn(new PsiMethod[]{method});
when(helper.isGaugeModule(c)).thenReturn(true);
boolean isUsed = new ImplUsageProvider(null, helper).isImplicitUsage(c);
assertTrue(isUsed);
}
示例6: getRootClassUnderOperation
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Nullable
private static PsiClassImpl getRootClassUnderOperation(PsiFile psiFile) {
Optional<PsiClassImpl> javaClass = Stream.of(psiFile.getChildren())
.filter(psiElement -> psiElement instanceof PsiClassImpl)
.map(psiElement -> (PsiClassImpl) psiElement).findFirst();
if (!javaClass.isPresent()) {
return null;
}
PsiClassImpl psiJavaClass = javaClass.get();
return psiJavaClass;
}
示例7: createPsi
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Override
public PsiClass createPsi(@NotNull final ASTNode node) {
if (node instanceof EnumConstantInitializerElement) {
return new PsiEnumConstantInitializerImpl(node);
}
else if (node instanceof AnonymousClassElement) {
return new PsiAnonymousClassImpl(node);
}
return new PsiClassImpl(node);
}
示例8: isEnumValuesMethodUsed
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
private static boolean isEnumValuesMethodUsed(@NotNull Project project,
@NotNull PsiFile containingFile,
@NotNull PsiMember member,
@NotNull ProgressIndicator progress,
@NotNull GlobalUsageHelper helper) {
final PsiClass containingClass = member.getContainingClass();
if (!(containingClass instanceof PsiClassImpl)) return true;
final PsiMethod valuesMethod = ((PsiClassImpl)containingClass).getValuesMethod();
return valuesMethod == null || isMethodReferenced(project, containingFile, valuesMethod, progress, helper);
}
示例9: TestIsImplicitUsageForClassWithNoMethods
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Test
public void TestIsImplicitUsageForClassWithNoMethods() throws Exception {
ModuleHelper helper = mock(ModuleHelper.class);
PsiClass c = mock(PsiClassImpl.class);
when(helper.isGaugeModule(c)).thenReturn(true);
when(c.getMethods()).thenReturn(new PsiMethod[]{});
boolean isUsed = new ImplUsageProvider(null, helper).isImplicitUsage(c);
assertFalse(isUsed);
}
示例10: findEnclosingName
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Nullable
private static String findEnclosingName(final SourcePosition position) {
PsiElement element = findElementAt(position);
while (true) {
element = PsiTreeUtil.getParentOfType(element, GrTypeDefinition.class, PsiClassImpl.class);
if (element == null
|| (element instanceof GrTypeDefinition && !((GrTypeDefinition)element).isAnonymous())
|| (element instanceof PsiClassImpl && ((PsiClassImpl)element).getName() != null)
) {
break;
}
}
return null;
}
示例11: createPsi
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Override
public PsiClass createPsi(@NotNull final ASTNode node)
{
if(node instanceof EnumConstantInitializerElement)
{
return new PsiEnumConstantInitializerImpl(node);
}
else if(node instanceof AnonymousClassElement)
{
return new PsiAnonymousClassImpl(node);
}
return new PsiClassImpl(node);
}
示例12: isEnumValuesMethodUsed
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
private static boolean isEnumValuesMethodUsed(@NotNull Project project,
@NotNull PsiFile containingFile,
@NotNull PsiMember member,
@NotNull ProgressIndicator progress,
@NotNull GlobalUsageHelper helper)
{
final PsiClass containingClass = member.getContainingClass();
if(!(containingClass instanceof PsiClassImpl))
{
return true;
}
if(containingClass.isEnum())
{
PsiMethod[] methodsByName = containingClass.findMethodsByName(JavaEnumAugmentProvider.VALUES_METHOD_NAME,
false);
PsiMethod valuesMethod = null;
for(PsiMethod psiMethod : methodsByName)
{
if(psiMethod.getParameterList().getParametersCount() == 0 && psiMethod.hasModifierProperty
(PsiModifier.STATIC))
{
valuesMethod = psiMethod;
break;
}
}
return valuesMethod == null || isMethodReferenced(project, containingFile, valuesMethod, progress, helper);
}
else
{
return true;
}
}
示例13: doExecute
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
@Override
protected void doExecute(Editor editor, @Nullable Caret caret, DataContext dataContext) {
System.out.println("doExecute called: editor = [" + editor + "], caret = [" + caret + "], " +
"dataContext = [" + dataContext + "]");
super.doExecute(editor, caret, dataContext);
Project project = (Project) dataContext.getData(DataKeys.PROJECT.getName());
if (project == null) return;
PsiFile rootPsiFile = PsiUtilBase.getPsiFileInEditor(editor, project);
if (rootPsiFile == null) return;
PsiClass sourceClassName = Stream.of(rootPsiFile.getChildren())
.peek(psiElement -> System.out.println(psiElement.getClass()))
.filter(psiElement -> psiElement instanceof PsiClass)
.peek(System.out::println)
.map(psiElement -> (PsiClass) psiElement)
.collect(Collectors.toList()).get(0);
SourceClass sourceClass = new SourceClass(sourceClassName.getName());
List<Variable> extractedVariables = Stream.of(rootPsiFile.getChildren())
.filter(psiElement -> psiElement instanceof PsiClassImpl)
.map(PsiElement::getChildren)
.flatMap(Arrays::stream)
.filter(psiElement -> psiElement instanceof PsiVariable)
.map(psiElement -> (PsiVariable) psiElement)
.map(psiVariable -> new Variable(
new Type(psiVariable.getType().getCanonicalText()),
new Variable.Name(psiVariable.getName())))
.peek(System.out::println)
.collect(Collectors.toList());
if (extractedVariables.isEmpty()) return;
PsiClassImpl sourceJavaPsiClass = getRootClassUnderOperation(rootPsiFile);
if (sourceJavaPsiClass == null) return;
GeneratedValueWriter writeActionRunner = new GeneratedValueWriter(
sourceJavaPsiClass, project, extractedVariables, sourceClass, rootPsiFile
);
WriteCommandAction.runWriteCommandAction(project, writeActionRunner);
}
示例14: getPsiClass
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
public PsiClassImpl getPsiClass() {
return psiClass;
}
示例15: setPsiClass
import com.intellij.psi.impl.source.PsiClassImpl; //导入依赖的package包/类
public void setPsiClass(PsiClassImpl psiClass) {
this.psiClass = psiClass;
}