1 /*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package org.eclipse.jdt.internal.ui.fix;
15 import org.eclipse.core.runtime.CoreException;
16 import org.eclipse.core.runtime.IProgressMonitor;
18 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
20 import org.eclipse.jdt.core.ICompilationUnit;
21 import org.eclipse.jdt.core.IJavaProject;
22 import org.eclipse.jdt.core.dom.CompilationUnit;
24 import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
25 import org.eclipse.jdt.internal.corext.fix.CleanUpConstants;
26 import org.eclipse.jdt.internal.corext.fix.ImportsFix;
28 import org.eclipse.jdt.ui.cleanup.CleanUpContext;
29 import org.eclipse.jdt.ui.cleanup.CleanUpRequirements;
30 import org.eclipse.jdt.ui.cleanup.ICleanUpFix;
32 import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
34 public class ImportsCleanUp extends AbstractCleanUp {
36 private CodeGenerationSettings fCodeGeneratorSettings;
37 private RefactoringStatus fStatus;
39 public ImportsCleanUp(Map<String, String> options) {
43 public ImportsCleanUp() {
51 public CleanUpRequirements getRequirements() {
52 boolean isOrganizeImports= isEnabled(CleanUpConstants.ORGANIZE_IMPORTS);
53 return new CleanUpRequirements(isOrganizeImports, isOrganizeImports, false, null);
60 public ICleanUpFix createFix(CleanUpContext context) throws CoreException {
61 CompilationUnit compilationUnit= context.getAST();
62 if (compilationUnit == null)
65 return ImportsFix.createCleanUp(compilationUnit, fCodeGeneratorSettings,
66 isEnabled(CleanUpConstants.ORGANIZE_IMPORTS), fStatus);
73 public RefactoringStatus checkPreConditions(IJavaProject project, ICompilationUnit[] compilationUnits, IProgressMonitor monitor) throws CoreException {
75 if (isEnabled(CleanUpConstants.ORGANIZE_IMPORTS)) {
76 fCodeGeneratorSettings= JavaPreferencesSettings.getCodeGenerationSettings(project);
77 fStatus= new RefactoringStatus();
80 return super.checkPreConditions(project, compilationUnits, monitor);
87 public RefactoringStatus checkPostConditions(IProgressMonitor monitor) throws CoreException {
88 fCodeGeneratorSettings= null;
90 if (fStatus == null || fStatus.isOK()) {
91 return super.checkPostConditions(monitor);
104 public String[] getStepDescriptions() {
105 if (isEnabled(CleanUpConstants.ORGANIZE_IMPORTS))
106 return new String[] {MultiFixMessages.ImportsCleanUp_OrganizeImports_Description};
115 public String getPreview() {
116 StringBuffer buf= new StringBuffer();
118 if (isEnabled(CleanUpConstants.ORGANIZE_IMPORTS)) {
119 buf.append("import org.model.Engine;\n"); //$NON-NLS-1$
121 buf.append("import org.model.*;\n"); //$NON-NLS-1$
124 return buf.toString();