package jetbrains.mps.debug.api.breakpoints;
/*Generated by MPS */
import org.jetbrains.annotations.NotNull;
import java.util.List;
import org.jetbrains.annotations.Nullable;
import com.intellij.openapi.project.Project;
import org.jetbrains.mps.openapi.model.SNode;
import org.jdom.Element;
import javax.swing.Icon;
import jetbrains.mps.debug.api.AbstractDebugSession;
public interface IBreakpointsProvider<B extends IBreakpoint, K extends IBreakpointKind<B>> {
@NotNull
List<K> getAllKinds();
boolean canCreateFromUi(@NotNull K kind);
boolean canCreateFromNode(@NotNull K kind);
@Nullable
B createFromUi(@NotNull K kind, Project project);
@Nullable
ILocationBreakpoint createFromNode(@NotNull SNode node, @NotNull K kind, Project project);
@Nullable
IBreakpointPropertiesUi<B> createPropertiesEditor(@NotNull K kind);
@Nullable
B loadFromState(Element state, K kind, Project project);
@Nullable
Element saveToState(@NotNull B breakpoint);
@Nullable
Icon getIcon(@NotNull B breakpoint, @Nullable AbstractDebugSession session);
}