Search in sources :

Example 1 with Environment

use of org.autorefactor.environment.Environment in project AutoRefactor by JnRouvignac.

the class AutoRefactorFix method createCleanUp.

/**
 * Create the clean up.
 *
 * @param compilationUnit compilation unit
 * @param enabled         enabled
 * @param fOptions        options
 * @return Clean up fix
 */
public static ICleanUpFix createCleanUp(final CompilationUnit compilationUnit, final boolean enabled, final CleanUpOptions fOptions) {
    boolean hasChanges = false;
    final ICompilationUnit iCompilationUnit = (ICompilationUnit) compilationUnit.getJavaElement();
    // $NON-NLS-1$
    final CleanUpChange cleanUpChange = new CleanUpChange("AutoRefactor", iCompilationUnit);
    TextEdit allEdits = null;
    if (enabled) {
        final IJavaProject javaProject = PrepareApplyRefactoringsJob.getIJavaProject(iCompilationUnit);
        final JavaProjectOptions options = new JavaProjectOptionsImpl(javaProject.getOptions(true));
        final Environment environment = AutoRefactorPlugin.getEnvironment();
        final List<RefactoringRule> refactoringRules = getConfiguredRefactoringRules(fOptions);
        final SubMonitor loopMonitor = SubMonitor.convert(null, 1);
        final Queue<RefactoringUnit> refactoringUnits = new ConcurrentLinkedQueue<>();
        refactoringUnits.add(new RefactoringUnit(iCompilationUnit, options));
        final ApplyRefactoringsJob applyRefactoringsJob = new ApplyRefactoringsJob(refactoringUnits, refactoringRules, environment);
        final AggregateASTVisitor visitor = new AggregateASTVisitor(refactoringRules);
        try {
            List<TextEdit> textEdits = applyRefactoringsJob.applyRefactoring(iCompilationUnit, visitor, options, loopMonitor, false);
            for (TextEdit textEdit : textEdits) {
                if (hasChanges) {
                    allEdits = TextEditUtil.merge(allEdits, textEdit);
                } else {
                    hasChanges = true;
                    allEdits = textEdit;
                }
            }
        } catch (Exception e) {
            if (!hasChanges) {
                return null;
            }
        }
    }
    if (!hasChanges) {
        return null;
    }
    cleanUpChange.setEdit(allEdits);
    AutoRefactorFix autoRefactorFix = new AutoRefactorFix();
    autoRefactorFix.cleanUpChange = cleanUpChange;
    return autoRefactorFix;
}
Also used : ICompilationUnit(org.eclipse.jdt.core.ICompilationUnit) JavaProjectOptions(org.autorefactor.jdt.internal.corext.dom.JavaProjectOptions) SubMonitor(org.eclipse.core.runtime.SubMonitor) RefactoringUnit(org.autorefactor.jdt.internal.corext.dom.RefactoringUnit) CoreException(org.eclipse.core.runtime.CoreException) JavaProjectOptionsImpl(org.autorefactor.jdt.internal.corext.dom.JavaProjectOptionsImpl) ApplyRefactoringsJob(org.autorefactor.jdt.internal.corext.dom.ApplyRefactoringsJob) PrepareApplyRefactoringsJob(org.autorefactor.jdt.internal.corext.dom.PrepareApplyRefactoringsJob) RefactoringRule(org.autorefactor.jdt.internal.corext.dom.RefactoringRule) IJavaProject(org.eclipse.jdt.core.IJavaProject) TextEdit(org.eclipse.text.edits.TextEdit) CleanUpChange(org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring.CleanUpChange) Environment(org.autorefactor.environment.Environment) AggregateASTVisitor(org.autorefactor.jdt.internal.ui.fix.AggregateASTVisitor) ConcurrentLinkedQueue(java.util.concurrent.ConcurrentLinkedQueue)

Example 2 with Environment

use of org.autorefactor.environment.Environment in project AutoRefactor by JnRouvignac.

the class AutoRefactorPlugin method start.

@Override
public void start(final BundleContext context) throws Exception {
    super.start(context);
    plugin = this;
    environment = new Environment(new DisplayEventLoop(), new JobManagerImpl(), new LoggerImpl(), new EclipsePreferences(plugin.getPreferenceStore()));
}
Also used : DisplayEventLoop(org.autorefactor.ui.DisplayEventLoop) EclipsePreferences(org.autorefactor.ui.preferences.EclipsePreferences) Environment(org.autorefactor.environment.Environment)

Example 3 with Environment

use of org.autorefactor.environment.Environment in project AutoRefactor by JnRouvignac.

the class AutoRefactorHandler method execute.

/**
 * Execute.
 *
 * @param event The event
 *
 * @return An object
 *
 * @throws ExecutionException ExecutionException
 */
@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
    try {
        Environment environment = AutoRefactorPlugin.getEnvironment();
        new PrepareApplyRefactoringsJob(getSelectedJavaElements(event), AllCleanUpRules.getConfiguredRefactoringRules(environment.getPreferences()), environment).schedule();
    } catch (Exception e) {
        final Shell shell = HandlerUtil.getActiveShell(event);
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        // $NON-NLS-1$
        showMessage(shell, "An error has occurred:\n\n" + sw);
    }
    // resolvedTypeBinding().
    return null;
}
Also used : Shell(org.eclipse.swt.widgets.Shell) StringWriter(java.io.StringWriter) PrepareApplyRefactoringsJob(org.autorefactor.jdt.internal.corext.dom.PrepareApplyRefactoringsJob) Environment(org.autorefactor.environment.Environment) CoreException(org.eclipse.core.runtime.CoreException) UnhandledException(org.autorefactor.util.UnhandledException) ExecutionException(org.eclipse.core.commands.ExecutionException) PrintWriter(java.io.PrintWriter)

Aggregations

Environment (org.autorefactor.environment.Environment)3 PrepareApplyRefactoringsJob (org.autorefactor.jdt.internal.corext.dom.PrepareApplyRefactoringsJob)2 CoreException (org.eclipse.core.runtime.CoreException)2 PrintWriter (java.io.PrintWriter)1 StringWriter (java.io.StringWriter)1 ConcurrentLinkedQueue (java.util.concurrent.ConcurrentLinkedQueue)1 ApplyRefactoringsJob (org.autorefactor.jdt.internal.corext.dom.ApplyRefactoringsJob)1 JavaProjectOptions (org.autorefactor.jdt.internal.corext.dom.JavaProjectOptions)1 JavaProjectOptionsImpl (org.autorefactor.jdt.internal.corext.dom.JavaProjectOptionsImpl)1 RefactoringRule (org.autorefactor.jdt.internal.corext.dom.RefactoringRule)1 RefactoringUnit (org.autorefactor.jdt.internal.corext.dom.RefactoringUnit)1 AggregateASTVisitor (org.autorefactor.jdt.internal.ui.fix.AggregateASTVisitor)1 DisplayEventLoop (org.autorefactor.ui.DisplayEventLoop)1 EclipsePreferences (org.autorefactor.ui.preferences.EclipsePreferences)1 UnhandledException (org.autorefactor.util.UnhandledException)1 ExecutionException (org.eclipse.core.commands.ExecutionException)1 SubMonitor (org.eclipse.core.runtime.SubMonitor)1 ICompilationUnit (org.eclipse.jdt.core.ICompilationUnit)1 IJavaProject (org.eclipse.jdt.core.IJavaProject)1 CleanUpChange (org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring.CleanUpChange)1