本文整理汇总了Java中com.intellij.psi.impl.PsiSuperMethodImplUtil类的典型用法代码示例。如果您正苦于以下问题:Java PsiSuperMethodImplUtil类的具体用法?Java PsiSuperMethodImplUtil怎么用?Java PsiSuperMethodImplUtil使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PsiSuperMethodImplUtil类属于com.intellij.psi.impl包,在下文中一共展示了PsiSuperMethodImplUtil类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: hasSuperMethod
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
private static boolean hasSuperMethod(PsiMethod method)
{
PsiClass containingClass = method.getContainingClass();
if(containingClass == null)
{
return false;
}
for(PsiMethod candidate : containingClass.findMethodsByName(method.getName(), true))
{
if(candidate.getContainingClass() != containingClass && PsiSuperMethodImplUtil.isSuperMethodSmart(method, candidate))
{
return true;
}
}
return false;
}
示例2: checkStaticMethodOverride
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
/**
* @return error if static method overrides instance method or
* instance method overrides static. see JLS 8.4.6.1, 8.4.6.2
*/
static HighlightInfo checkStaticMethodOverride(@NotNull PsiMethod method,@NotNull PsiFile containingFile) {
// constructors are not members and therefor don't override class methods
if (method.isConstructor()) {
return null;
}
PsiClass aClass = method.getContainingClass();
if (aClass == null) return null;
final HierarchicalMethodSignature methodSignature = PsiSuperMethodImplUtil.getHierarchicalMethodSignature(method);
final List<HierarchicalMethodSignature> superSignatures = methodSignature.getSuperSignatures();
if (superSignatures.isEmpty()) {
return null;
}
boolean isStatic = method.hasModifierProperty(PsiModifier.STATIC);
for (HierarchicalMethodSignature signature : superSignatures) {
final PsiMethod superMethod = signature.getMethod();
final PsiClass superClass = superMethod.getContainingClass();
if (superClass == null) continue;
final HighlightInfo highlightInfo = checkStaticMethodOverride(aClass, method, isStatic, superClass, superMethod,containingFile);
if (highlightInfo != null) {
return highlightInfo;
}
}
return null;
}
示例3: overridesObjectOrGroovyObject
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
private static boolean overridesObjectOrGroovyObject(PsiMethod method) {
final String name = method.getName();
if (!OBJECT_METHODS.contains(name) && !GROOVY_OBJECT_METHODS.contains(name)) return false;
final PsiMethod superMethod = PsiSuperMethodImplUtil.findDeepestSuperMethod(method);
if (superMethod == null) return false;
final PsiClass superClass = superMethod.getContainingClass();
if (superClass == null) return false;
final String qname = superClass.getQualifiedName();
return CommonClassNames.JAVA_LANG_OBJECT.equals(qname) || GroovyCommonClassNames.GROOVY_OBJECT.equals(qname);
}
示例4: findSuperMethods
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@Override
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);
/*PsiClass containingClass = getContainingClass();
Set<PsiMethod> methods = new HashSet<PsiMethod>();
findSuperMethodRecursively(methods, containingClass, false, new HashSet<PsiClass>(), createMethodSignature(this),
new HashSet<MethodSignature>());
return methods.toArray(new PsiMethod[methods.size()]);*/
}
示例5: hasSuperMethod
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
private static boolean hasSuperMethod(PsiMethod method) {
PsiClass containingClass = method.getContainingClass();
if (containingClass == null) return false;
for (PsiMethod candidate : containingClass.findMethodsByName(method.getName(), true)) {
if (candidate.getContainingClass() != containingClass && PsiSuperMethodImplUtil.isSuperMethodSmart(method, candidate)) {
return true;
}
}
return false;
}
示例6: findSuperMethods
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@NotNull
public PsiMethod[] findSuperMethods(boolean checkAccess) {
return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess);
/*PsiClass containingClass = getContainingClass();
Set<PsiMethod> methods = new HashSet<PsiMethod>();
findSuperMethodRecursively(methods, containingClass, false, new HashSet<PsiClass>(), createMethodSignature(this),
new HashSet<MethodSignature>());
return methods.toArray(new PsiMethod[methods.size()]);*/
}
示例7: checkStaticMethodOverride
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
/**
* @return error if static method overrides instance method or
* instance method overrides static. see JLS 8.4.6.1, 8.4.6.2
*/
static HighlightInfo checkStaticMethodOverride(@NotNull PsiMethod method, @NotNull PsiFile containingFile)
{
// constructors are not members and therefor don't override class methods
if(method.isConstructor())
{
return null;
}
PsiClass aClass = method.getContainingClass();
if(aClass == null)
{
return null;
}
final HierarchicalMethodSignature methodSignature = PsiSuperMethodImplUtil.getHierarchicalMethodSignature(method);
final List<HierarchicalMethodSignature> superSignatures = methodSignature.getSuperSignatures();
if(superSignatures.isEmpty())
{
return null;
}
boolean isStatic = method.hasModifierProperty(PsiModifier.STATIC);
for(HierarchicalMethodSignature signature : superSignatures)
{
final PsiMethod superMethod = signature.getMethod();
final PsiClass superClass = superMethod.getContainingClass();
if(superClass == null)
{
continue;
}
final HighlightInfo highlightInfo = checkStaticMethodOverride(aClass, method, isStatic, superClass, superMethod, containingFile);
if(highlightInfo != null)
{
return highlightInfo;
}
}
return null;
}
示例8: getHierarchicalMethodSignature
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@Override
@NotNull
public HierarchicalMethodSignature getHierarchicalMethodSignature() {
return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this);
}
示例9: findSuperMethods
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@Override
@NotNull
public PsiMethod[] findSuperMethods() {
return PsiSuperMethodImplUtil.findSuperMethods(this);
}
示例10: findSuperMethodSignaturesIncludingStatic
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@Override
@NotNull
public List<MethodSignatureBackedByPsiMethod> findSuperMethodSignaturesIncludingStatic(boolean checkAccess) {
return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess);
}
示例11: findDeepestSuperMethod
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@Override
public PsiMethod findDeepestSuperMethod() {
return PsiSuperMethodImplUtil.findDeepestSuperMethod(this);
}
示例12: findDeepestSuperMethods
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@Override
@NotNull
public PsiMethod[] findDeepestSuperMethods() {
return PsiSuperMethodImplUtil.findDeepestSuperMethods(this);
}
示例13: getVisibleSignatures
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@NotNull
@Override
public Collection<HierarchicalMethodSignature> getVisibleSignatures() {
return PsiSuperMethodImplUtil.getVisibleSignatures(this);
}
示例14: getVisibleSignatures
import com.intellij.psi.impl.PsiSuperMethodImplUtil; //导入依赖的package包/类
@Override
@NotNull
public Collection<HierarchicalMethodSignature> getVisibleSignatures() {
return PsiSuperMethodImplUtil.getVisibleSignatures(this);
}