com.intellij.psi.util.InheritanceUtil Java Examples
The following examples show how to use
com.intellij.psi.util.InheritanceUtil.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: HaxePullUpHelper.java From intellij-haxe with Apache License 2.0 | 6 votes |
@Override public void visitReferenceElement(PsiJavaCodeReferenceElement referenceElement) { if (!myIsMovable) return; final PsiExpression qualifier; if (referenceElement instanceof PsiReferenceExpression) { qualifier = ((PsiReferenceExpression) referenceElement).getQualifierExpression(); } else { qualifier = null; } if (qualifier == null || qualifier instanceof PsiThisExpression || qualifier instanceof PsiSuperExpression) { final PsiElement resolved = referenceElement.resolve(); if (!(resolved instanceof PsiParameter)) { if (resolved instanceof PsiClass && (((PsiClass) resolved).hasModifierProperty(PsiModifier.STATIC) || ((PsiClass)resolved).getContainingClass() == null)) { return; } PsiClass containingClass = null; if (resolved instanceof PsiMember && !((PsiMember)resolved).hasModifierProperty(PsiModifier.STATIC)) { containingClass = ((PsiMember) resolved).getContainingClass(); } myIsMovable = containingClass != null && InheritanceUtil.isInheritorOrSelf(myTargetSuperClass, containingClass, true); } } else { qualifier.accept(this); } }
Example #2
Source File: ExtractSuperBaseProcessor.java From intellij-haxe with Apache License 2.0 | 5 votes |
protected boolean doesAnyExtractedInterfaceExtends(PsiClass aClass) { for (final MemberInfo memberInfo : myMemberInfos) { final PsiElement member = memberInfo.getMember(); if (member instanceof PsiClass && memberInfo.getOverrides() != null) { if (InheritanceUtil.isInheritorOrSelf((PsiClass)member, aClass, true)) { return true; } } } return false; }
Example #3
Source File: PsiElementUtil.java From lombok-intellij-plugin with BSD 3-Clause "New" or "Revised" License | 5 votes |
/** * @param method the method to compare to. * @param containingClassName the name of the class which contiains the * method. * @param returnType the return type, specify null if any type matches * @param methodName the name the method should have * @param parameterTypes the type of the parameters of the method, specify * null if any number and type of parameters match or an empty array * to match zero parameters. * @return true, if the specified method matches the specified constraints, * false otherwise */ public static boolean methodMatches( @NotNull PsiMethod method, @NonNls @Nullable String containingClassName, @Nullable PsiType returnType, @NonNls @Nullable String methodName, @Nullable List<PsiType> parameterTypes) { final String name = method.getName(); if (methodName != null && !methodName.equals(name)) { return false; } if (parameterTypes != null) { final PsiParameterList parameterList = method.getParameterList(); if (parameterList.getParametersCount() != parameterTypes.size()) { return false; } final PsiParameter[] parameters = parameterList.getParameters(); for (int i = 0; i < parameters.length; i++) { final PsiType type = parameters[i].getType(); final PsiType parameterType = parameterTypes.get(i); if (PsiType.NULL.equals(parameterType)) { continue; } if (parameterType != null && !typesAreEquivalent(type, parameterType)) { return false; } } } if (returnType != null) { final PsiType methodReturnType = method.getReturnType(); if (!typesAreEquivalent(returnType, methodReturnType)) { return false; } } if (containingClassName != null) { final PsiClass containingClass = method.getContainingClass(); return InheritanceUtil.isInheritor(containingClass, containingClassName); } return true; }
Example #4
Source File: CommonUtils.java From HakunaMatataIntelliJPlugin with Apache License 2.0 | 4 votes |
@Contract("null -> false") public static boolean isIterable(@Nullable PsiType type) { return type != null && InheritanceUtil.isInheritor(type, CommonClassNames.JAVA_LANG_ITERABLE); }
Example #5
Source File: AndroidPostfixUtil.java From HakunaMatataIntelliJPlugin with Apache License 2.0 | 4 votes |
@Override public boolean value(PsiElement element) { return element instanceof PsiExpression && InheritanceUtil.isInheritor(((PsiExpression) element).getType(), CommonClassNames.JAVA_UTIL_MAP); }
Example #6
Source File: AndroidPostfixUtil.java From HakunaMatataIntelliJPlugin with Apache License 2.0 | 4 votes |
@Contract("null -> false") public static boolean isCollection(@Nullable PsiType type) { return type != null && InheritanceUtil.isInheritor(type, CommonClassNames.JAVA_UTIL_COLLECTION); }
Example #7
Source File: AndroidPostfixUtil.java From HakunaMatataIntelliJPlugin with Apache License 2.0 | 4 votes |
@Contract("null -> false") public static boolean isIterator(@Nullable PsiType type) { return type != null && InheritanceUtil.isInheritor(type, CommonClassNames.JAVA_UTIL_ITERATOR); }
Example #8
Source File: AndroidPostfixUtil.java From HakunaMatataIntelliJPlugin with Apache License 2.0 | 4 votes |
@Contract("null -> false") public static boolean isCharSequence(@Nullable PsiType type) { return type != null && InheritanceUtil.isInheritor(type, JAVA_LANG_CHAR_SEQUENCE); }
Example #9
Source File: AndroidPostfixTemplatesUtils.java From android-postfix-plugin with Apache License 2.0 | 4 votes |
@Override public boolean value(PsiElement element) { return element instanceof PsiExpression && InheritanceUtil.isInheritor(((PsiExpression) element).getType(), CommonClassNames.JAVA_UTIL_MAP); }
Example #10
Source File: AndroidPostfixTemplatesUtils.java From android-postfix-plugin with Apache License 2.0 | 4 votes |
@Override public boolean value(PsiElement element) { return element instanceof PsiExpression && InheritanceUtil.isInheritor(((PsiExpression) element).getType(), AndroidClassName.VIEW.getClassName()); }
Example #11
Source File: AndroidPostfixTemplatesUtils.java From android-postfix-plugin with Apache License 2.0 | 4 votes |
@Contract("null -> false") public static boolean isCollection(@Nullable PsiType type) { return type != null && InheritanceUtil.isInheritor(type, CommonClassNames.JAVA_UTIL_COLLECTION); }
Example #12
Source File: AndroidPostfixTemplatesUtils.java From android-postfix-plugin with Apache License 2.0 | 4 votes |
@Contract("null -> false") public static boolean isIterator(@Nullable PsiType type) { return type != null && InheritanceUtil.isInheritor(type, CommonClassNames.JAVA_UTIL_ITERATOR); }
Example #13
Source File: AndroidPostfixTemplatesUtils.java From android-postfix-plugin with Apache License 2.0 | 4 votes |
@Contract("null -> false") public static boolean isCharSequence(@Nullable PsiType type) { return type != null && InheritanceUtil.isInheritor(type, JAVA_LANG_CHAR_SEQUENCE); }
Example #14
Source File: TextUtilsIsEmptyTemplate.java From android-postfix-plugin with Apache License 2.0 | 4 votes |
@Override public boolean value(PsiElement element) { return InheritanceUtil.isInheritor(((PsiExpression) element).getType(), "java.lang.CharSequence") && !AndroidPostfixTemplatesUtils.isAnnotatedNullable(element); }
Example #15
Source File: PushDownConflicts.java From intellij-haxe with Apache License 2.0 | 4 votes |
public void checkTargetClassConflicts(final PsiClass targetClass, final boolean checkStatic, final PsiElement context) { if (targetClass != null) { for (final PsiMember movedMember : myMovedMembers) { checkMemberPlacementInTargetClassConflict(targetClass, movedMember); movedMember.accept(new JavaRecursiveElementWalkingVisitor() { @Override public void visitMethodCallExpression(PsiMethodCallExpression expression) { super.visitMethodCallExpression(expression); if (expression.getMethodExpression().getQualifierExpression() instanceof PsiSuperExpression) { final PsiMethod resolvedMethod = expression.resolveMethod(); if (resolvedMethod != null) { final PsiClass resolvedClass = resolvedMethod.getContainingClass(); if (resolvedClass != null) { if (myClass.isInheritor(resolvedClass, true)) { final PsiMethod methodBySignature = myClass.findMethodBySignature(resolvedMethod, false); if (methodBySignature != null && !myMovedMembers.contains(methodBySignature)) { myConflicts.putValue(expression, "Super method call will resolve to another method"); } } } } } } }); } } Members: for (PsiMember member : myMovedMembers) { for (PsiReference ref : ReferencesSearch.search(member, member.getResolveScope(), false)) { final PsiElement element = ref.getElement(); if (element instanceof PsiReferenceExpression) { final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)element; final PsiExpression qualifier = referenceExpression.getQualifierExpression(); if (qualifier != null) { final PsiType qualifierType = qualifier.getType(); PsiClass aClass = null; if (qualifierType instanceof PsiClassType) { aClass = ((PsiClassType)qualifierType).resolve(); } else { if (!checkStatic) continue; if (qualifier instanceof PsiReferenceExpression) { final PsiElement resolved = ((PsiReferenceExpression)qualifier).resolve(); if (resolved instanceof PsiClass) { aClass = (PsiClass)resolved; } } } if (!InheritanceUtil.isInheritorOrSelf(aClass, targetClass, true)) { myConflicts.putValue(referenceExpression, RefactoringBundle.message("pushed.members.will.not.be.visible.from.certain.call.sites")); break Members; } } } } } //RefactoringConflictsUtil.analyzeAccessibilityConflicts(myMovedMembers, targetClass, myConflicts, null, context, myAbstractMembers); }