package org.bndtools.build.api; import java.util.List; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.ui.IMarkerResolution; import org.osgi.annotation.versioning.ProviderType; import aQute.bnd.build.Project; import aQute.bnd.osgi.Processor; import aQute.service.reporter.Report.Location; /** * Implementations of this interface handle a specific type of build error detail as returned from bnd's * {@link Processor#getLocation(String)} method. * * @author Neil Bartlett <njbartlett@gmail.com> */ @ProviderType public interface BuildErrorDetailsHandler { public static String PROP_HAS_RESOLUTIONS = "bndHasResolutions"; List<MarkerData> generateMarkerData(IProject project, Project model, Location location) throws Exception; /** * Bridge method to convert a Processor model to a Project model. This is implemented in the abstract base class. * This allows handlers to react to Builder, ProjectBuilder, Workspace, and Project. * <p> * This method returns a list of markers that have as many attributes set as possible. * * @param project * The Eclipse project * @param model * The bnd Processor * @param location * the location of the error * @return A list of marker data */ List<MarkerData> generateMarkerData(IProject project, Processor model, Location location) throws Exception; List<IMarkerResolution> getResolutions(IMarker marker); List<ICompletionProposal> getProposals(IMarker marker); }