JUnitCleanUp.java
/*******************************************************************************
* Copyright (c) 2021, 2026 Carsten Hammer.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Carsten Hammer
*******************************************************************************/
package org.sandbox.jdt.internal.ui.fix;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.internal.ui.fix.AbstractCleanUpCoreWrapper;
import org.sandbox.jdt.cleanup.multifile.api.IMultiFileCleanUpDiagnosticsProvider;
import org.sandbox.jdt.cleanup.multifile.api.IMultiFileCleanUpScopeProvider;
/** Cleanup wrapper for JUnit migration. */
public class JUnitCleanUp extends AbstractCleanUpCoreWrapper<ReportingJUnitCleanUpCore>
implements IMultiFileCleanUpScopeProvider, IMultiFileCleanUpDiagnosticsProvider {
public JUnitCleanUp(final Map<String, String> options) {
super(options, new ReportingJUnitCleanUpCore());
}
public JUnitCleanUp() {
this(Collections.emptyMap());
}
@Override
public Collection<ICompilationUnit> expandCleanUpScope(IJavaProject project,
Collection<ICompilationUnit> currentScope, IProgressMonitor monitor) throws CoreException {
return cleanUpCore.expandCleanUpScope(project, currentScope, monitor);
}
/**
* Optional dependency-free contract discovered reflectively by the patched
* JDT Cleanup host. Coordinated JUnit migrations must expose the candidate
* metadata held by the planned cleanup core so declarations and consumers are
* represented by one atomic preview selection unit.
*
* @param project current Java project
* @return immutable coordinated-candidate metadata
* @throws CoreException if the planned preview metadata is inconsistent
*/
public Collection<Map<String, Object>> getCoordinatedCleanUpPreview(IJavaProject project)
throws CoreException {
return cleanUpCore.getCoordinatedCleanUpPreview(project);
}
@Override
public String getLastPlanningDiagnosticsJson(IJavaProject project) {
return cleanUpCore.getLastPlanningDiagnosticsJson(project);
}
}