From e0afc7536aac420332c3eaae2300755c14093da8 Mon Sep 17 00:00:00 2001 From: Darin Wright Date: Tue, 2 Apr 2002 21:03:12 +0000 Subject: API review --- .../org/eclipse/debug/core/model/Breakpoint.java | 7 +++ .../org/eclipse/debug/core/model/IBreakpoint.java | 50 +++++++++------------- .../eclipse/debug/core/model/IDebugElement.java | 11 ++--- .../org/eclipse/debug/core/model/IDebugTarget.java | 17 +++----- .../org/eclipse/debug/core/model/IDisconnect.java | 6 --- .../org/eclipse/debug/core/model/IExpression.java | 8 +--- .../core/model/ILaunchConfigurationDelegate.java | 17 ++++---- .../org/eclipse/debug/core/model/IMemoryBlock.java | 5 --- .../debug/core/model/IMemoryBlockRetrieval.java | 9 +--- .../core/model/IPersistableSourceLocator.java | 8 +--- .../org/eclipse/debug/core/model/IProcess.java | 8 +--- .../org/eclipse/debug/core/model/IRegister.java | 7 +-- .../eclipse/debug/core/model/IRegisterGroup.java | 5 --- .../eclipse/debug/core/model/ISourceLocator.java | 17 +++----- .../org/eclipse/debug/core/model/IStackFrame.java | 21 ++++----- .../core/org/eclipse/debug/core/model/IStep.java | 6 --- .../eclipse/debug/core/model/IStreamMonitor.java | 10 +---- .../eclipse/debug/core/model/IStreamsProxy.java | 6 --- .../eclipse/debug/core/model/ISuspendResume.java | 6 --- .../org/eclipse/debug/core/model/ITerminate.java | 6 --- .../core/org/eclipse/debug/core/model/IThread.java | 16 +++---- .../core/org/eclipse/debug/core/model/IValue.java | 10 +---- .../debug/core/model/IValueModification.java | 8 +--- .../org/eclipse/debug/core/model/IVariable.java | 8 +--- .../core/org/eclipse/debug/core/model/package.html | 2 +- .../debug/internal/core/BreakpointManager.java | 8 +++- 26 files changed, 87 insertions(+), 195 deletions(-) (limited to 'org.eclipse.debug.core') diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java index 18ea01f41..2e9671cbe 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java @@ -18,6 +18,7 @@ import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.IBreakpointManager; import org.eclipse.debug.internal.core.DebugCoreMessages; /** @@ -89,6 +90,12 @@ public abstract class Breakpoint extends PlatformObject implements IBreakpoint { public void setRegistered(boolean registered) throws CoreException { if (isRegistered() != registered) { setAttribute(REGISTERED, registered); + IBreakpointManager mgr = DebugPlugin.getDefault().getBreakpointManager(); + if (registered) { + mgr.addBreakpoint(this); + } else { + mgr.removeBreakpoint(this, false); + } } } diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java index 13c5267fb..47f875722 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java @@ -18,7 +18,7 @@ import org.eclipse.debug.core.DebugPlugin; *

* A breakpoint is defined in two parts: *

    - *
  1. By an extension of kind "org.eclipse.debug.core.breakpoints"
  2. + *
  3. By an extension of kind "org.eclipse.debug.core.breakpoints"
  4. *
  5. By a marker definition that corresponds to the above breakpoint extension
  6. *
*

@@ -70,7 +70,7 @@ public interface IBreakpoint extends IAdaptable { public static final String BREAKPOINT_MARKER = DebugPlugin.PLUGIN_ID + ".breakpointMarker"; //$NON-NLS-1$ /** - * Line breakpoint marker type. + * Line breakpoint marker type * (value "org.eclipse.debug.core.lineBreakpoint"). */ public static final String LINE_BREAKPOINT_MARKER = DebugPlugin.PLUGIN_ID + ".lineBreakpointMarker"; //$NON-NLS-1$ @@ -85,17 +85,16 @@ public interface IBreakpoint extends IAdaptable { public static final String ENABLED= "org.eclipse.debug.core.enabled"; //$NON-NLS-1$ /** - * Breakpoint marker attribute (value "org.eclipse.debug.core.id"). + * Debug model identifier breakpoint marker attribute (value "org.eclipse.debug.core.id"). * The attribute is a String corresponding to the - * identifier of the debug model a breakpoint is - * associated with. + * identifier of the debug model a breakpoint is associated with. */ public static final String ID= "org.eclipse.debug.core.id"; //$NON-NLS-1$ /** * Registered breakpoint marker attribute (value "org.eclipse.debug.core.registered"). * The attribute is a boolean corresponding to - * whether a breakpoint has been added to the breakpoint manager. + * whether a breakpoint has been registered with the breakpoint manager. * * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean) */ @@ -111,18 +110,12 @@ public interface IBreakpoint extends IAdaptable { */ public static final String PERSISTED= "org.eclipse.debug.core.persisted"; //$NON-NLS-1$ - /** - * Attribute name for the "markerType" attribute of - * a breakpoint extension. - */ - public static final String MARKER_TYPE= "markerType"; //$NON-NLS-1$ - /** * Deletes this breakpoint's underlying marker, and removes * this breakpoint from the breakpoint manager. * - * @exception CoreException if deleting the underlying marker throws - * a CoreException. + * @exception CoreException if unable to delete this breakpoint's + * underlying marker */ public void delete() throws CoreException; @@ -154,8 +147,8 @@ public interface IBreakpoint extends IAdaptable { * Returns whether this breakpoint is enabled * * @return whether this breakpoint is enabled - * @exception CoreException if a CoreException is - * thrown when retrieving the enabled attribute from the underlying marker + * @exception CoreException if unable to access the associated + * attribute from this breakpoint's underlying marker */ public boolean isEnabled() throws CoreException; /** @@ -164,8 +157,8 @@ public interface IBreakpoint extends IAdaptable { * enabled parameter. * * @param enabled whether this breakpoint should be enabled - * @exception CoreException if a CoreException is thrown - * when setting the attribute on the underlying marker. + * @exception CoreException if unable to set the associated attribute on + * this breakpoint's underlying marker. */ public void setEnabled(boolean enabled) throws CoreException; @@ -175,22 +168,19 @@ public interface IBreakpoint extends IAdaptable { * * @return whether this breakpoint is currently registered with * the breakpoint manager - * @exception CoreException if a CoreException is thrown - * when accessing the attribute on the underlying marker + * @exception CoreException if unable to access the associated + * attribute on this breakpoint's underlying marker */ public boolean isRegistered() throws CoreException; /** * Sets whether this breakpoint is currently registered with the - * breakpoint manager. This method is only used by the breakpoint - * manager, such that when breakpoints are restored on workspace - * startup, the breakpoint manager knows which breakpoints should - * be added to the breakpoint manager. + * breakpoint manager. * * @param registered whether this breakpoint is registered with the * breakpoint manager - * @exception CoreException if a CoreException is thrown - * when setting the attribute on the underlying marker. + * @exception CoreException if unable to set the associated attribute + * on this breakpoint's underlying marker. */ public void setRegistered(boolean registered) throws CoreException; @@ -202,8 +192,8 @@ public interface IBreakpoint extends IAdaptable { * specific type), breakpoints define this functionality. * * @return whether this breakpoint is to be persisted - * @exception CoreException if a CoreException is thrown - * when accessing the attribute on the underlying marker + * @exception CoreException if unable to access the associated attribute + * on this breakpoint's underlying marker */ public boolean isPersisted() throws CoreException; @@ -216,8 +206,8 @@ public interface IBreakpoint extends IAdaptable { * breakpoint's marker definition is defined as not persisted. * * @param persist whether this breakpoint is to be persisted - * @exception CoreException if a CoreException is thrown - * when setting the attribute on the underlying marker. + * @exception CoreException if unable to set the associated attribute on + * this breakpoint's underlying marker. */ public void setPersisted(boolean registered) throws CoreException; } diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java index 7ca045d1e..8f9ab7558 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java @@ -31,12 +31,6 @@ import org.eclipse.debug.core.ILaunch; *

* Clients may implement this interface. *

- *

- * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

*/ public interface IDebugElement extends IAdaptable { @@ -57,7 +51,10 @@ public interface IDebugElement extends IAdaptable { * Returns the launch this target is contained in, * or null if not yet registered with * a launch. - * + *

+ * [Issue: Specification will be changed to not allow null + * to be returned.] + *

* @return launch or null */ public ILaunch getLaunch(); diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java index 925c8ee79..b177a835c 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java @@ -11,8 +11,8 @@ import org.eclipse.debug.core.IBreakpointListener; /** * A debug target is a debuggable execution context. For example, a debug target * may represent a debuggable process or a virtual machine. A debug target is the root - * of the debug element hierarchy. A debug target is of element type DEBUG_TARGET, - * and contains threads. Minimally, a debug target supports the following capabilities: + * of the debug element hierarchy. A debug targetcontains threads. Minimally, a debug + * target supports the following: *
    *
  • terminate *
  • suspend/resume @@ -26,12 +26,6 @@ import org.eclipse.debug.core.IBreakpointListener; *

    * Clients may implement this interface. *

    - *

    - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

    * @see ITerminate * @see ISuspendResume * @see IBreakpointListener @@ -44,6 +38,9 @@ public interface IDebugTarget extends IDebugElement, ITerminate, ISuspendResume, * Returns the system process associated with this debug target * or null if no system process is associated with * this debug target. + * + * @return the system process associated with this debug target + * or null if none */ public IProcess getProcess(); /** @@ -61,9 +58,9 @@ public interface IDebugTarget extends IDebugElement, ITerminate, ISuspendResume, public IThread[] getThreads() throws DebugException; /** - * Returns whether this debug target contains any threads. + * Returns whether this debug target currently contains any threads. * - * @return whether this debug target contains any threads + * @return whether this debug target currently contains any threads * @exception DebugException if this method fails. Reasons include: *
    • Failure communicating with the debug target. The DebugException's * status code contains the underlying exception responsible for diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java index 8ed1336c4..7e06b6c4a 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; *

      * Clients may implement this interface. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see IDebugTarget */ public interface IDisconnect { diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java index 4e7f1173c..6713ef5be 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java @@ -21,12 +21,6 @@ package org.eclipse.debug.core.model; *

      * Clients are intended to implement this interface. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @since 2.0 */ public interface IExpression extends IDebugElement { @@ -40,7 +34,7 @@ public interface IExpression extends IDebugElement { /** * Returns the current value of this expression or - * code null if this expression does not + * null if this expression does not * currently have a value. * * @return value or null diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java index 7ea2384da..7c5eb64c6 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java @@ -12,24 +12,16 @@ import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; /** - * Note: This interface is yet experimental. - *

      * A launch configuration delegate performs launching for a * specific type of launch configuration. A launch configuration * delegate is defined by the delegate attribute * of a launchConfigurationType extension. - *

      *

      * This interface is intended to be implemented by clients. *

      - *

      - * NOTE: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see org.eclipse.debug.core.ILaunchConfigurationType * @see ILaunchConfiguration + * @since 2.0 */ public interface ILaunchConfigurationDelegate { @@ -39,6 +31,13 @@ public interface ILaunchConfigurationDelegate { * configuration. The resulting launch object is registered with the * launch manager. Returns null if the launch is not * completed. + *

      + * [Issue: this API is being changed. A launch object will be created + * and registered before this method is called, and will be passed + * as a parameter to this method. This delegate will add targets and + * processes to the launch as required. This method will not return + * a value (i.e. will be 'void').] + *

      * * @param configuration the configuration to launch * @param mode the mode in which to launch, one of the mode constants diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java index c81815a85..49f379638 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java @@ -13,11 +13,6 @@ import org.eclipse.debug.core.DebugException; * and a length. Not all debug architectures support the retrieval * of memory blocks. * - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see IMemoryBlockRetrieval * @since 2.0 */ diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java index 94620a7e7..d6c8a77a5 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java @@ -8,15 +8,10 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException; /** - * Some debug targets support the retrieval of arbitrary blocks of - * memory. + * Supports the retrieval of arbitrary blocks of memory. * - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see IMemoryBlock + * @since 2.0 */ public interface IMemoryBlockRetrieval { diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java index e8c9399b0..e8fec3d85 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java @@ -11,7 +11,7 @@ import org.eclipse.debug.core.ILaunchConfiguration; /** * A source locator that can be persisted and restored, * to be used with a specfic launch configuration. - * The debug plug-in defines source locator extension + * The debug plug-in defines a source locator extension * point for persistable source locators. *

      * A source locator extension is defined in plugin.xml. @@ -37,12 +37,6 @@ import org.eclipse.debug.core.ILaunchConfiguration; *

      * Clients may implement this interface. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see org.eclipse.debug.core.ILaunch * @see IStackFrame * @see org.eclipse.debug.ui.IDebugModelPresentation diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java index 127dda4ff..40c57798b 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java @@ -19,12 +19,6 @@ import org.eclipse.core.runtime.IAdaptable; * provides an implementation of this interface for a * java.lang.Process. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see org.eclipse.debug.core.DebugPlugin#newProcess(Process, String) */ public interface IProcess extends IAdaptable, ITerminate { @@ -40,6 +34,8 @@ public interface IProcess extends IAdaptable, ITerminate { * null if this element is not registered with * an launch. This is a convenience method for * ILaunchManager.findLaunch(IProcess). + * + * [Issue: this API will be changed to never return null.] * * @return the launch this process is contained in */ diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java index 7fd7baf0d..6fecca6ee 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java @@ -8,15 +8,10 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException; /** - * Some debug architectures provide access to registers. * A register is a special kind of variable that is contained * in a register group. Each register has a name and a value. + * Not all debug architectures provide access to registers. * - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @since 2.0 */ public interface IRegister extends IVariable { diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java index f9fe6d4e3..4a330f1b9 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java @@ -14,11 +14,6 @@ import org.eclipse.debug.core.DebugException; * grouped logically. For example, a floating point * register group. * - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @since 2.0 */ public interface IRegisterGroup extends IDebugElement { diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java index 7a69c7ff8..181b83dd2 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java @@ -8,15 +8,15 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.model.IStackFrame; /** - * A source locator locates source elements for stack frames. Each - * debug session launch (optionally) specifies a source locator which is + * A source locator locates source elements for stack frames. A launch (optionally) + * specifies a source locator which is * used to locate source for that debug session. If a launch does not * provide a source locator, source cannot be displayed. * Abstraction of source lookup allows clients to hide implementation * details of source location and representation. *

      - * Generally, an implementor of a debug model will also implement launchers - * and source locators that work together as a whole. That is, the implementation + * Generally, an implementor of a debug model will also implement launch configuration types, + * delegates, and source locators that work together as a whole. That is, the implementation * of a source locator will have knowledge of how to locate a source element * for a stack frame. For example, a Java stack frame could define API which * specifies a source file name. A Java source locator would use this information @@ -31,15 +31,10 @@ import org.eclipse.debug.core.model.IStackFrame; *

      * Clients may implement this interface. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see org.eclipse.debug.core.ILaunch - * @see IStackFrame + * @see org.eclipse.debug.core.model.IStackFrame * @see org.eclipse.debug.ui.IDebugModelPresentation + * @see org.eclipse.debug.core.model.IPersistableSourceLocator */ public interface ISourceLocator { diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java index 2336ffb6f..dbdad2fe1 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java @@ -8,25 +8,24 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException; /** - * A stack frame represents an execution context in a suspended thread. A - * stack frame is of element type STACK_FRAME. A stack frame - * contains variables representing visible locals and arguments at the current - * execution location. Minimally, a stack frame supports - * the following capabilities: + * A stack frame represents an execution context in a suspended thread. + * A stack frame contains variables representing visible locals and arguments at + * the current execution location. Minimally, a stack frame supports + * the following: *
        *
      • suspend/resume (convenience to resume this stack frame's thread) *
      • stepping *
      • termination (convenience to terminate this stack frame's thread or debug target) *
      *

      - * An debug model implementation may choose to re-use or discard + * A debug model implementation may choose to re-use or discard * stack frames on iterative thread suspensions. Clients * cannot assume that stack frames are identical or equal across * iterative thread suspensions and must check for equality on iterative * suspensions if they wish to re-use the objects. *

      *

      - * An debug model implementation that preserves equality + * A debug model implementation that preserves equality * across iterative suspensions may display more desirable behavior in * some clients. For example, if stack frames are preserved * while stepping, a UI client would be able to update the UI incrementally, @@ -35,12 +34,6 @@ import org.eclipse.debug.core.DebugException; *

      * Clients may implement this interface. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see IStep * @see ISuspendResume * @see ITerminate @@ -50,6 +43,7 @@ public interface IStackFrame extends IDebugElement, IStep, ISuspendResume, ITerm * Returns the thread this stack frame is contained in. * * @return thread + * @since 2.0 */ public IThread getThread(); /** @@ -62,6 +56,7 @@ public interface IStackFrame extends IDebugElement, IStep, ISuspendResume, ITerm * status code contains the underlying exception responsible for * the failure.
    • *
    + * @since 2.0 */ public IVariable[] getVariables() throws DebugException; diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java index efcb247a1..e45970d3e 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java @@ -14,12 +14,6 @@ import org.eclipse.debug.core.DebugException; *

    * Clients may implement this interface. *

    - *

    - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

    */ public interface IStep { /** diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java index 42704c761..a291aa5ce 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java @@ -16,12 +16,6 @@ import org.eclipse.debug.core.IStreamListener; * provides an implementation of the IStreamsProxy * interface must also provide an implementation of this interface. *

    - *

    - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

    * @see IStreamsProxy */ public interface IStreamMonitor { @@ -29,7 +23,7 @@ public interface IStreamMonitor { * Adds the given listener to this stream monitor's registered listeners. * Has no effect if an identical listener is already registered. * - * @param the listener to add + * @param listener the listener to add */ public void addListener(IStreamListener listener); /** @@ -43,7 +37,7 @@ public interface IStreamMonitor { * Removes the given listener from this stream monitor's registered listeners. * Has no effect if the listener is not already registered. * - * @param the listener to remove + * @param listener the listener to remove */ public void removeListener(IStreamListener listener); } diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java index a75431dca..c43acae4d 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java @@ -17,12 +17,6 @@ import java.io.IOException; * Clients implementing the IProcess interface must also * provide an implementation of this interface. *

    - *

    - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

    * @see IProcess */ public interface IStreamsProxy { diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java index 35baafec7..d1d08f1cb 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; *

    * Clients may implement this interface. *

    - *

    - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

    */ public interface ISuspendResume { /** diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java index b8b9f10b0..3848ffa97 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; *

    * Clients may implement this interface. *

    - *

    - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

    */ public interface ITerminate { /** diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java index 41a88a6e3..a350c572c 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java @@ -8,11 +8,10 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException; /** - * A thread is a sequential flow of execution in a debug target. A - * thread is of element type THREAD. A thread contains - * stack frames. Stack frames are only available when the thread is - * suspended, and are returned in top-down order. - * Minimally, a thread supports the following capabilities: + * A thread is a sequential flow of execution in a debug target. + * A thread contains stack frames. Stack frames are only available when the + * thread is suspended, and are returned in top-down order. + * Minimally, a thread supports the following: *
      *
    • suspend/resume *
    • stepping @@ -21,12 +20,6 @@ import org.eclipse.debug.core.DebugException; *

      * Clients may implement this interface. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see ISuspendResume * @see IStep * @see ITerminate @@ -45,6 +38,7 @@ public interface IThread extends IDebugElement, ISuspendResume, IStep, ITerminat *
      • Failure communicating with the VM. The DebugException's * status code contains the underlying exception responsible for * the failure.
      • + * @since 2.0 */ public IStackFrame[] getStackFrames() throws DebugException; diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java index b60e9cd53..0f6155e35 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java @@ -8,8 +8,7 @@ package org.eclipse.debug.core.model; import org.eclipse.debug.core.DebugException; /** - * A value represents the value of a variable. A value is of element type VALUE. - * A value does not have a parent - instead it has an associated variable. + * A value represents the value of a variable. * A value representing a complex data structure contains variables. *

        * An implementation may choose to re-use or discard @@ -28,12 +27,6 @@ import org.eclipse.debug.core.DebugException; *

        * Clients may implement this interface. *

        - *

        - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

        * @see IVariable */ @@ -85,6 +78,7 @@ public interface IValue extends IDebugElement { *
        • Failure communicating with the VM. The DebugException's * status code contains the underlying exception responsible for * the failure.
        • + * @since 2.0 */ public IVariable[] getVariables() throws DebugException; diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java index ec2e910ed..bd08b4e0c 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java @@ -13,12 +13,6 @@ import org.eclipse.debug.core.DebugException; *

          * Clients may implement this interface. *

          - *

          - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

          * @see IVariable */ public interface IValueModification { @@ -43,6 +37,7 @@ public interface IValueModification { *
        • TARGET_REQUEST_FAILED - The request failed in the target *
        • NOT_SUPPORTED - The capability is not supported by the target *
        + * @since 2.0 */ public void setValue(IValue value) throws DebugException; @@ -76,6 +71,7 @@ public interface IValueModification { *
      • TARGET_REQUEST_FAILED - The request failed in the target *
      • NOT_SUPPORTED - The capability is not supported by the target *
      + * @since 2.0 */ public boolean verifyValue(IValue value) throws DebugException; } diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java index cba2cece3..ff02764c3 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java @@ -9,7 +9,7 @@ import org.eclipse.debug.core.DebugException; /** * A variable represents a visible data structure in a stack frame - * or value. A variable is of type VARIABLE. + * or value. * Each variable has a value which may in turn contain more variables. * A variable may support value modification. *

      @@ -29,12 +29,6 @@ import org.eclipse.debug.core.DebugException; *

      * Clients may implement this interface. *

      - *

      - * Note: This class/interface is part of an interim API that is still under development and expected to - * change significantly before reaching stability. It is being made available at this early stage to solicit feedback - * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken - * (repeatedly) as the API evolves. - *

      * @see IValue * @see IStackFrame * @see IValueModification diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html index 3f9882d9c..adb722b52 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html @@ -8,7 +8,7 @@ -

      Defines interfaces for a debug model to support an extensible set of debug architectures.

      +

      Defines interfaces for a debug model elements, source lookup, and launching.

      Package Specification

      diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java index 881d846f9..9db6e3fa6 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java @@ -56,6 +56,12 @@ public class BreakpointManager implements IBreakpointManager, IResourceChangeLis * String constants corresponding to XML extension keys */ private final static String CLASS = "class"; //$NON-NLS-1$ + + /** + * Attribute name for the "markerType" attribute of + * a breakpoint extension. + */ + private static final String MARKER_TYPE= "markerType"; //$NON-NLS-1$ /** * A collection of breakpoints registered with this manager. @@ -177,7 +183,7 @@ public class BreakpointManager implements IBreakpointManager, IResourceChangeLis IExtensionPoint ep= DebugPlugin.getDefault().getDescriptor().getExtensionPoint(DebugPlugin.EXTENSION_POINT_BREAKPOINTS); IConfigurationElement[] elements = ep.getConfigurationElements(); for (int i= 0; i < elements.length; i++) { - fBreakpointExtensions.put(elements[i].getAttribute(IBreakpoint.MARKER_TYPE), elements[i]); + fBreakpointExtensions.put(elements[i].getAttribute(MARKER_TYPE), elements[i]); } } -- cgit v1.2.3