blob: 8979554f61848821f62d713cead40fb7de310a6a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.jsdt.debug.core.jsdi.request;
import java.util.List;
import org.eclipse.wst.jsdt.debug.core.jsdi.Location;
import org.eclipse.wst.jsdt.debug.core.jsdi.ThreadReference;
/**
* Description of a manager for creating {@link EventRequest}s
*
* @see EventRequest
* @since 1.0
* @noextend This interface is not intended to be extended by clients.
*/
public interface EventRequestManager {
/**
* Creates a new {@link BreakpointRequest} for the given {@link Location}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @param location the {@link Location} to create the breakpoint for, <code>null</code> is not accepted
*
* @return a new {@link BreakpointRequest} for the given {@link Location}, never <code>null</code>
*/
public BreakpointRequest createBreakpointRequest(Location location);
/**
* Returns the live immutable list of {@link BreakpointRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link BreakpointRequest}s or an empty list, never <code>null</code>
*/
public List /*<BreakpointRequest>*/ breakpointRequests();
/**
* Creates a new {@link DebuggerStatementRequest}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return a new {@link DebuggerStatementRequest} never <code>null</code>
*/
public DebuggerStatementRequest createDebuggerStatementRequest();
/**
* Returns the live immutable list of {@link DebuggerStatementRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link DebuggerStatementRequest}s or an empty list, never <code>null</code>
*/
public List /*<DebuggerStatementRequest>*/ debuggerStatementRequests();
/**
* Creates a new {@link ExceptionRequest}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return a new {@link ExceptionRequest} never <code>null</code>
*/
public ExceptionRequest createExceptionRequest();
/**
* Returns the live immutable list of {@link ExceptionRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link ExceptionRequest}s or an empty list, never <code>null</code>
*/
public List /*<ExceptionRequest>*/ exceptionRequests();
/**
* Creates a new {@link ScriptLoadRequest}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return a new {@link ScriptLoadRequest} never <code>null</code>
*/
public ScriptLoadRequest createScriptLoadRequest();
/**
* Returns the live immutable list of {@link ScriptLoadRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link ScriptLoadRequest}s or an empty list, never <code>null</code>
*/
public List /*<ScriptLoadRequest>*/ scriptLoadRequests();
/**
* Creates a new {@link StepRequest} for the specified {@link ThreadReference} of the given kind.<br>
* <br>
* This method cannot return <code>null</code>
*
* @param thread the {@link ThreadReference} to perform the step in
* @param step the kind of step
* @see StepRequest for a complete listing of step kinds
*
* @return a new {@link StepRequest} never <code>null</code>
*/
public StepRequest createStepRequest(ThreadReference thread, int step);
/**
* Returns the live immutable list of {@link StepRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link StepRequest}s or an empty list, never <code>null</code>
*/
public List /*<StepRequest>*/ stepRequests();
/**
* Creates a new {@link SuspendRequest} for the specified {@link ThreadReference}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @param thread the {@link ThreadReference} to perform the suspend on
*
* @return a new {@link SuspendRequest} never <code>null</code>
*/
public SuspendRequest createSuspendRequest(ThreadReference thread);
/**
* Returns the live immutable list of {@link SuspendRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link SuspendRequest}s or an empty list, never <code>null</code>
*/
public List /*<SuspendRequest>*/ suspendRequests();
/**
* Creates a new {@link ThreadEnterRequest}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return a new {@link ThreadEnterRequest} never <code>null</code>
*/
public ThreadEnterRequest createThreadEnterRequest();
/**
* Returns the live immutable list of {@link ThreadEnterRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link ThreadEnterRequest}s or an empty list, never <code>null</code>
*/
public List /*<ThreadEnterRequest>*/ threadEnterRequests();
/**
* Creates a new {@link ThreadExitRequest}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return a new {@link ThreadExitRequest} never <code>null</code>
*/
public ThreadExitRequest createThreadExitRequest();
/**
* Returns the live immutable list of {@link ThreadExitRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link ThreadExitRequest}s or an empty list, never <code>null</code>
*/
public List /*<ThreadExitRequest>*/ threadExitRequests();
/**
* Deletes the given {@link EventRequest}
*
* @param eventRequest the {@link EventRequest} to delete, <code>null</code> is not accepted
*/
public void deleteEventRequest(EventRequest eventRequest);
/**
* Deletes the list of {@link EventRequest}s
*
* @param eventRequests the {@link EventRequest}s to delete, <code>null</code> is not accepted
*/
public void deleteEventRequest(List /*<EventRequest>*/ eventRequests);
/**
* Creates a new {@link VMDeathRequest}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return a new {@link VMDeathRequest} never <code>null</code>
*/
public VMDeathRequest createVMDeathRequest();
/**
* Returns the live immutable list of {@link VMDeathRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link VMDeathRequest}s or an empty list, never <code>null</code>
*/
public List /*<VMDeathRequest>*/ vmDeathRequests();
/**
* Creates a new {@link VMDisconnectRequest}.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return a new {@link VMDisconnectRequest} never <code>null</code>
*/
public VMDisconnectRequest createVMDisconnectRequest();
/**
* Returns the live immutable list of {@link VMDisconnectRequest}s currently queued in the manager.<br>
* <br>
* This method cannot return <code>null</code>
*
* @return the list of {@link VMDisconnectRequest}s or an empty list, never <code>null</code>
*/
public List /*<VMDisconnectRequest>*/ vmDisconnectRequests();
}