[maven] remove unfinished quick fix
[idea/community.git] / java / java-psi-api / src / com / intellij / patterns / PsiStatementPattern.java
1 // Copyright 2000-2018 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.
2 package com.intellij.patterns;
3
4 import com.intellij.psi.PsiMember;
5 import com.intellij.psi.PsiMethod;
6 import com.intellij.psi.PsiStatement;
7 import com.intellij.psi.util.PsiTreeUtil;
8 import com.intellij.util.ProcessingContext;
9 import org.jetbrains.annotations.NonNls;
10 import org.jetbrains.annotations.NotNull;
11
12 public class PsiStatementPattern<T extends PsiStatement, Self extends PsiStatementPattern<T, Self>> extends PsiJavaElementPattern<T, Self>{
13   public PsiStatementPattern(final Class<T> aClass) {
14     super(aClass);
15   }
16
17   public Self insideMethod(final PsiMethodPattern pattern) {
18     return with(new PatternCondition<T>("insideMethod") {
19       @Override
20       public boolean accepts(@NotNull final T t, final ProcessingContext context) {
21         PsiMethod method = PsiTreeUtil.getParentOfType(t, PsiMethod.class, false, PsiMember.class);
22         return method != null && pattern.accepts(method, context);
23       }
24     });
25   }
26
27   public Self insideMethod(StringPattern methodName, String qualifiedClassName) {
28     return insideMethod(PsiJavaPatterns.psiMethod().withName(methodName).definedInClass(qualifiedClassName));
29   }
30
31   public Self insideMethod(@NotNull @NonNls String methodName, @NotNull @NonNls String qualifiedClassName) {
32     return insideMethod(StandardPatterns.string().equalTo(methodName), qualifiedClassName);
33   }
34
35   public static class Capture<T extends PsiStatement> extends PsiStatementPattern<T, Capture<T>> {
36     public Capture(final Class<T> aClass) {
37       super(aClass);
38     }
39
40   }
41 }