@Override protected void updateAvailableButtons() { boolean isJava8orHigher= JavaModelUtil.is18OrHigher(fJavaProject); for (int index : fEnumValuesSinceJava8) { fEnumButtons.enableSelectionButton(index, isJava8orHigher); } }
/** * Checks if the given project or workspace has source compliance 1.8 or greater. * * @param project the project to test or <code>null</code> to test the workspace settings * @return <code>true</code> if the given project or workspace has source compliance 1.8 or * greater. */ public static boolean is18OrHigher(IJavaProject project) { return is18OrHigher(getSourceCompliance(project)); }
@Override protected void updateAvailableButtons() { boolean isJava8orHigher= JavaModelUtil.is18OrHigher(fJavaProject); for (int index : fEnumValuesSinceJava8) { fEnumButtons.enableSelectionButton(index, isJava8orHigher); } }
/** * Checks if the given project or workspace has source compliance 1.8 or greater. * * @param project the project to test or <code>null</code> to test the workspace settings * @return <code>true</code> if the given project or workspace has source compliance 1.8 or * greater. */ public static boolean is18OrHigher(IJavaProject project) { return is18OrHigher(getSourceCompliance(project)); }
boolean isValidDestination(ASTNode node) { boolean isInterface= node instanceof TypeDeclaration && ((TypeDeclaration) node).isInterface(); return !(node instanceof AnnotationTypeDeclaration) && !(isInterface && !JavaModelUtil.is18OrHigher(fCUnit.getJavaProject())); }
boolean isValidDestination(ASTNode node) { boolean isInterface= node instanceof TypeDeclaration && ((TypeDeclaration) node).isInterface(); return !(node instanceof AnnotationTypeDeclaration) && !(isInterface && !JavaModelUtil.is18OrHigher(fCUnit.getJavaProject())); }
boolean isValidDestination(ASTNode node) { boolean isInterface = node instanceof TypeDeclaration && ((TypeDeclaration) node).isInterface(); return !(node instanceof AnnotationTypeDeclaration) && !(isInterface && !JavaModelUtil.is18OrHigher(fCUnit.getJavaProject())); }
private static boolean is18OrHigherInterface(ITypeBinding binding) { if (!binding.isInterface() || binding.isAnnotation()) return false; IJavaElement javaElement= binding.getJavaElement(); return javaElement != null && JavaModelUtil.is18OrHigher(javaElement.getJavaProject()); }
private static boolean is18OrHigherInterface(ITypeBinding binding) { if (!binding.isInterface() || binding.isAnnotation()) return false; IJavaElement javaElement= binding.getJavaElement(); return javaElement != null && JavaModelUtil.is18OrHigher(javaElement.getJavaProject()); }
public static ICleanUpFix createCleanUp(CompilationUnit compilationUnit, boolean useLambda, boolean useAnonymous) { if (!JavaModelUtil.is18OrHigher(compilationUnit.getJavaElement().getJavaProject())) return null; if (useLambda) { ArrayList<ClassInstanceCreation> convertibleNodes= FunctionalAnonymousClassesFinder.perform(compilationUnit); if (convertibleNodes.isEmpty()) return null; Collections.reverse(convertibleNodes); // process nested anonymous classes first CompilationUnitRewriteOperation op= new CreateLambdaOperation(convertibleNodes); return new LambdaExpressionsFix(FixMessages.LambdaExpressionsFix_convert_to_lambda_expression, compilationUnit, new CompilationUnitRewriteOperation[] { op }); } else if (useAnonymous) { ArrayList<LambdaExpression> convertibleNodes= LambdaExpressionsFinder.perform(compilationUnit); if (convertibleNodes.isEmpty()) return null; Collections.reverse(convertibleNodes); // process nested lambdas first CompilationUnitRewriteOperation op= new CreateAnonymousClassCreationOperation(convertibleNodes); return new LambdaExpressionsFix(FixMessages.LambdaExpressionsFix_convert_to_anonymous_class_creation, compilationUnit, new CompilationUnitRewriteOperation[] { op }); } return null; }
public static LambdaExpressionsFix createConvertToLambdaFix(ClassInstanceCreation cic) { CompilationUnit root = (CompilationUnit) cic.getRoot(); if (!JavaModelUtil.is18OrHigher(root.getJavaElement().getJavaProject())) { return null; } if (!LambdaExpressionsFix.isFunctionalAnonymous(cic)) { return null; } CreateLambdaOperation op = new CreateLambdaOperation(Collections.singletonList(cic)); String message; if (fConversionRemovesAnnotations) { message = FixMessages.LambdaExpressionsFix_convert_to_lambda_expression_removes_annotations; } else { message = FixMessages.LambdaExpressionsFix_convert_to_lambda_expression; } return new LambdaExpressionsFix(message, root, new CompilationUnitRewriteOperation[] { op }); }
public static LambdaExpressionsFix createConvertToLambdaFix(ClassInstanceCreation cic) { CompilationUnit root= (CompilationUnit) cic.getRoot(); if (!JavaModelUtil.is18OrHigher(root.getJavaElement().getJavaProject())) return null; if (!LambdaExpressionsFix.isFunctionalAnonymous(cic)) return null; CreateLambdaOperation op= new CreateLambdaOperation(Collections.singletonList(cic)); String message; if (fConversionRemovesAnnotations) { message= FixMessages.LambdaExpressionsFix_convert_to_lambda_expression_removes_annotations; } else { message= FixMessages.LambdaExpressionsFix_convert_to_lambda_expression; } return new LambdaExpressionsFix(message, root, new CompilationUnitRewriteOperation[] { op }); }
public static LambdaExpressionsFix createConvertToLambdaFix(ClassInstanceCreation cic) { CompilationUnit root= (CompilationUnit) cic.getRoot(); if (!JavaModelUtil.is18OrHigher(root.getJavaElement().getJavaProject())) return null; if (!LambdaExpressionsFix.isFunctionalAnonymous(cic)) return null; CreateLambdaOperation op= new CreateLambdaOperation(Collections.singletonList(cic)); String message; if (fConversionRemovesAnnotations) { message= FixMessages.LambdaExpressionsFix_convert_to_lambda_expression_removes_annotations; } else { message= FixMessages.LambdaExpressionsFix_convert_to_lambda_expression; } return new LambdaExpressionsFix(message, root, new CompilationUnitRewriteOperation[] { op }); }
private boolean isBindingToTemp(IVariableBinding variable) { if (variable.isField()) return false; if (!Modifier.isFinal(variable.getModifiers()) && !JavaModelUtil.is18OrHigher(fCu.getJavaProject())) return false; ASTNode declaringNode= fCompilationUnitNode.findDeclaringNode(variable); if (declaringNode == null) return false; if (ASTNodes.isParent(declaringNode, fAnonymousInnerClassNode)) return false; return true; }
private IType chooseIntermediaryType() { IJavaProject proj= getIntroduceIndirectionRefactoring().getProject(); if (proj == null) return null; IJavaElement[] elements= new IJavaElement[] { proj }; IJavaSearchScope scope= SearchEngine.createJavaSearchScope(elements); int elementKinds= JavaModelUtil.is18OrHigher(proj) ? IJavaSearchConstants.CLASS_AND_INTERFACE : IJavaSearchConstants.CLASS; FilteredTypesSelectionDialog dialog= new FilteredTypesSelectionDialog(getShell(), false, getWizard().getContainer(), scope, elementKinds); dialog.setTitle(RefactoringMessages.IntroduceIndirectionInputPage_dialog_choose_declaring_class); dialog.setMessage(RefactoringMessages.IntroduceIndirectionInputPage_dialog_choose_declaring_class_long); if (dialog.open() == Window.OK) { return (IType) dialog.getFirstResult(); } return null; }
@Override public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException { initAST(); if (fTempDeclarationNode == null || fTempDeclarationNode.resolveBinding() == null) return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_must_select_local); if (!Checks.isDeclaredIn(fTempDeclarationNode, MethodDeclaration.class) && !Checks.isDeclaredIn(fTempDeclarationNode, Initializer.class) && !Checks.isDeclaredIn(fTempDeclarationNode, LambdaExpression.class)) { if (JavaModelUtil.is18OrHigher(fCu.getJavaProject())) return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_only_in_methods_initializers_and_lambda); return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_only_in_methods_and_initializers); } initNames(); return new RefactoringStatus(); }
@Override public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException { initAST(); if (fTempDeclarationNode == null || fTempDeclarationNode.resolveBinding() == null) { return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_must_select_local); } if (!Checks.isDeclaredIn(fTempDeclarationNode, MethodDeclaration.class) && !Checks.isDeclaredIn(fTempDeclarationNode, Initializer.class) && !Checks.isDeclaredIn(fTempDeclarationNode, LambdaExpression.class)) { if (JavaModelUtil.is18OrHigher(fCu.getJavaProject())) { return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_only_in_methods_initializers_and_lambda); } return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_only_in_methods_and_initializers); } initNames(); return new RefactoringStatus(); }
@Override public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException { initAST(); if (fTempDeclarationNode == null || fTempDeclarationNode.resolveBinding() == null) return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_must_select_local); if (!Checks.isDeclaredIn(fTempDeclarationNode, MethodDeclaration.class) && !Checks.isDeclaredIn(fTempDeclarationNode, Initializer.class) && !Checks.isDeclaredIn(fTempDeclarationNode, LambdaExpression.class)) { if (JavaModelUtil.is18OrHigher(fCu.getJavaProject())) return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_only_in_methods_initializers_and_lambda); return RefactoringStatus.createFatalErrorStatus(RefactoringCoreMessages.RenameTempRefactoring_only_in_methods_and_initializers); } initNames(); return new RefactoringStatus(); }
private IType chooseIntermediaryType() { IJavaProject proj= getIntroduceIndirectionRefactoring().getProject(); if (proj == null) return null; IJavaElement[] elements= new IJavaElement[] { proj }; IJavaSearchScope scope= SearchEngine.createJavaSearchScope(elements); int elementKinds= JavaModelUtil.is18OrHigher(proj) ? IJavaSearchConstants.CLASS_AND_INTERFACE : IJavaSearchConstants.CLASS; FilteredTypesSelectionDialog dialog= new FilteredTypesSelectionDialog(getShell(), false, getWizard().getContainer(), scope, elementKinds); dialog.setTitle(RefactoringMessages.IntroduceIndirectionInputPage_dialog_choose_declaring_class); dialog.setMessage(RefactoringMessages.IntroduceIndirectionInputPage_dialog_choose_declaring_class_long); if (dialog.open() == Window.OK) { return (IType) dialog.getFirstResult(); } return null; }
private RefactoringStatus checkMoveToInterface() throws JavaModelException { //could be more clever and make field final if it is only written once... boolean is18OrHigher= JavaModelUtil.is18OrHigher(fDestinationType.getJavaProject()); RefactoringStatus result= new RefactoringStatus(); boolean declaringIsInterface= getDeclaringType().isInterface(); if (declaringIsInterface && is18OrHigher) return result; String moveMembersMsg= is18OrHigher ? RefactoringCoreMessages.MoveMembersRefactoring_only_public_static_18 : RefactoringCoreMessages.MoveMembersRefactoring_only_public_static; for (int i= 0; i < fMembersToMove.length; i++) { if (declaringIsInterface && !(fMembersToMove[i] instanceof IMethod) && !is18OrHigher) { // moving from interface to interface is OK, unless method is moved to pre-18 } else if (!canMoveToInterface(fMembersToMove[i], is18OrHigher)) { result.addError(moveMembersMsg, JavaStatusContext.create(fMembersToMove[i])); } else if (!Flags.isPublic(fMembersToMove[i].getFlags()) && !declaringIsInterface) { result.addWarning(RefactoringCoreMessages.MoveMembersRefactoring_member_will_be_public, JavaStatusContext.create(fMembersToMove[i])); } } return result; }