/** * Checks whether or not a method can be overridden. * * @param method the method * @return <code>true</code> if the method cannot be overridden, <code>false</code> otherwise * @throws JavaModelException if this element does not exist or if an exception occurs while * accessing its corresponding resource * @since 3.7 */ private static boolean cannotBeOverriddenMethod(IMethod method) throws JavaModelException { return JdtFlags.isPrivate(method) || JdtFlags.isFinal(method) || JdtFlags.isStatic(method) || method.isConstructor() || JdtFlags.isFinal((IMember)method.getParent()); }
public static int getVisibilityCode(IMember member) throws JavaModelException { if (isPublic(member)) return Modifier.PUBLIC; else if (isProtected(member)) return Modifier.PROTECTED; else if (isPackageVisible(member)) return Modifier.NONE; else if (isPrivate(member)) return Modifier.PRIVATE; Assert.isTrue(false); return VISIBILITY_CODE_INVALID; }
private String getVisibilityString(int visibility) { String visibilityString= JdtFlags.getVisibilityString(visibility); if ("".equals(visibilityString)) //$NON-NLS-1$ return visibilityString; return visibilityString + ' '; }
private static int getVisibility(IMember member) throws JavaModelException { if (JdtFlags.isPrivate(member)) { return 0; } if (JdtFlags.isPackageVisible(member)) { return 1; } if (JdtFlags.isProtected(member)) { return 2; } return 4; }
private boolean needsVisibilityUpdate() throws JavaModelException { if (isVisibilitySameAsInitial()) return false; if (isIncreasingVisibility()) return JdtFlags.isHigherVisibility(fVisibility, JdtFlags.getVisibilityCode(fMethDecl)); else return JdtFlags.isHigherVisibility(JdtFlags.getVisibilityCode(fMethDecl), fVisibility); }
protected boolean needsVisibilityAdjustment(final IMember member, final boolean references, final IProgressMonitor monitor, final RefactoringStatus status) throws JavaModelException { if (JdtFlags.isPublic(member) || JdtFlags.isProtected(member)) return false; if (!references) return true; return hasNonMovedReferences(member, monitor, status); } }
int getNewModifiersForOriginal(int oldModifiers) throws JavaModelException { if (isFieldInfo()) return oldModifiers; if (isToBeDeletedFromDeclaringClass()) return oldModifiers; int modifiers= oldModifiers; if (isNewMethodToBeDeclaredAbstract()) { modifiers= JdtFlags.clearFlag(Modifier.FINAL | Modifier.NATIVE, oldModifiers); modifiers|= Modifier.ABSTRACT; if (!JdtFlags.isPublic(fMember)) modifiers= Modifier.PROTECTED | JdtFlags.clearAccessModifiers(modifiers); } return modifiers; }
private static boolean isStatic(MethodInvocation invocation) { IMethodBinding methodBinding= invocation.resolveMethodBinding(); if (methodBinding == null) return false; return JdtFlags.isStatic(methodBinding); }
public static boolean isRenameFieldAvailable(final IField field) throws JavaModelException { return Checks.isAvailable(field) && !JdtFlags.isEnum(field); }
private boolean classesDeclareOverridingNativeMethod(IType[] classes) throws CoreException { for (int i= 0; i < classes.length; i++){ IMethod[] methods= classes[i].getMethods(); for (int j= 0; j < methods.length; j++){ if ((!methods[j].equals(getMethod())) && (JdtFlags.isNative(methods[j])) && (null != Checks.findSimilarMethod(getMethod(), new IMethod[]{methods[j]}))) return true; } } return false; }
private boolean mustAnalyzeAstOfDeclaringCu() throws JavaModelException{ if (JdtFlags.isAbstract(getMethod())) return false; else if (JdtFlags.isNative(getMethod())) return false; else if (getMethod().getDeclaringType().isInterface()) return false; else return true; }
public static boolean isStatic(IMember member) throws JavaModelException { if (isNestedInterfaceOrAnnotation(member)) return true; if (member.getElementType() != IJavaElement.METHOD && isInterfaceOrAnnotationMember(member)) return true; if (isEnum(member) && (member.getElementType() == IJavaElement.FIELD || member.getDeclaringType() != null)) return true; return Flags.isStatic(member.getFlags()); }
private int getModifiersWithUpdatedVisibility(final IMember member, final int modifiers, final Map<IMember, IncomingMemberVisibilityAdjustment> adjustments, final IProgressMonitor monitor, final boolean considerReferences, final RefactoringStatus status) throws JavaModelException { if (getDestinationType().isInterface()) { int flags= JdtFlags.clearAccessModifiers(modifiers); flags= JdtFlags.clearFlag(Modifier.ABSTRACT | Modifier.STATIC | Modifier.FINAL, flags); return flags; } if (needsVisibilityAdjustment(member, considerReferences, monitor, status)) { final MemberVisibilityAdjustor.OutgoingMemberVisibilityAdjustment adjustment= new MemberVisibilityAdjustor.OutgoingMemberVisibilityAdjustment(member, Modifier.ModifierKeyword.PROTECTED_KEYWORD, RefactoringStatus.createWarningStatus(Messages.format(MemberVisibilityAdjustor.getMessage(member), new String[] { MemberVisibilityAdjustor.getLabel(member), MemberVisibilityAdjustor.getLabel(Modifier.ModifierKeyword.PROTECTED_KEYWORD)}))); adjustment.setNeedsRewriting(false); adjustments.put(member, adjustment); return JdtFlags.clearAccessModifiers(modifiers) | Modifier.PROTECTED; } return modifiers; }
private RefactoringStatus checkVisibilityChanges() throws JavaModelException { if (isVisibilitySameAsInitial()) return null; if (fRippleMethods.length == 1) return null; Assert.isTrue(JdtFlags.getVisibilityCode(fMethod) != Modifier.PRIVATE); if (fVisibility == Modifier.PRIVATE) return RefactoringStatus.createWarningStatus(RefactoringCoreMessages.ChangeSignatureRefactoring_non_virtual); return null; }
public static int clearAccessModifiers(int flags) { return clearFlag(Modifier.PROTECTED | Modifier.PUBLIC | Modifier.PRIVATE, flags); }
private void analyzeImportedTypes(IType[] types, RefactoringStatus result, IImportDeclaration imp) throws CoreException { for (int i = 0; i < types.length; i++) { //could this be a problem (same package imports)? if (JdtFlags.isPublic(types[i]) && types[i].getElementName().equals(getNewElementName())) { String msg = Messages.format(RefactoringCoreMessages.RenameTypeRefactoring_name_conflict1, new Object[] { JavaElementLabels.getElementLabel(types[i], JavaElementLabels.ALL_FULLY_QUALIFIED), BasicElementLabels.getPathLabel(getCompilationUnit(imp).getPath(), false) }); result.addError(msg, JavaStatusContext.create(imp)); } } }
private static boolean isEnumTypeFinal(IMember member) throws JavaModelException { if (!(isEnum(member) && member.getElementType() == IJavaElement.TYPE)) return false; // An enum type is implicitly final unless it contains at least one enum constant that has a class body. IJavaElement[] children= member.getChildren(); for (IJavaElement child : children) { if (isEnumConstant((IMember) child) && ((IField) child).getChildren().length != 0) { return false; } } return true; }
public static String[] computeAffectedNatures(IJavaElement element) throws CoreException { if (element instanceof IMember) { IMember member= (IMember)element; if (JdtFlags.isPrivate(member)) { return element.getJavaProject().getProject().getDescription().getNatureIds(); } } IJavaProject project= element.getJavaProject(); return ResourceProcessors.computeAffectedNatures(project.getProject()); }
private static int getVisibility(IMember member) throws JavaModelException { if (JdtFlags.isPrivate(member)) return 0; if (JdtFlags.isPackageVisible(member)) return 1; if (JdtFlags.isProtected(member)) return 2; return 4; }