From 265609f8253713cf79c6ccc527e74a15c521b97a Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Fri, 9 Jul 2004 19:30:23 +0000 Subject: [PATCH] Cleanup. Added support of "CDebugElementState". --- debug/org.eclipse.cdt.debug.core/ChangeLog | 5 + .../cdt/debug/core/model/ICDebugElement.java | 7 +- .../internal/core/model/CDebugElement.java | 263 ++++++++---------- 3 files changed, 115 insertions(+), 160 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 6ef6a982e29..d0b0cd0fe6a 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,8 @@ +2004-07-09 Mikhail Khodjaiants + Cleanup. Added support of "CDebugElementState". + * ICDebugElement.java + * CDebugElement.java + 2004-07-09 Mikhail Khodjaiants Renamed "ICDebugElementErrorStatus" to "ICDebugElementStatus". Added comments to ICDebugElementStatus.java. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugElement.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugElement.java index 081b5a79262..852c68eb247 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugElement.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugElement.java @@ -10,17 +10,12 @@ ***********************************************************************/ package org.eclipse.cdt.debug.core.model; -import org.eclipse.core.runtime.IStatus; import org.eclipse.debug.core.model.IDebugElement; /** - * C/C++ specific extension of ICDebugElement. + * C/C++ specific extension of IDebugElement. */ public interface ICDebugElement extends IDebugElement { public CDebugElementState getState(); - - public IStatus getStatus(); - - public String getSubModelIdentifier(); } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java index 8c0939c66ac..1ad3fca800a 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java @@ -8,7 +8,6 @@ * Contributors: * QNX Software Systems - Initial API and implementation *******************************************************************************/ - package org.eclipse.cdt.debug.internal.core.model; import java.text.MessageFormat; @@ -29,96 +28,85 @@ import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunch; +import org.eclipse.debug.core.model.IDebugElement; import org.eclipse.debug.core.model.IDebugTarget; /** - * - * Enter type comment. - * - * @since Aug 1, 2002 + * The super class of all C/C++ debug model elements. */ -public class CDebugElement extends PlatformObject - implements ICDebugElement, - ICDebugElementStatus -{ +abstract public class CDebugElement extends PlatformObject implements ICDebugElement, ICDebugElementStatus { + + /** + * Debug target associated with this element + */ private CDebugTarget fDebugTarget; + /** + * The severity code of this element's status + */ private int fSeverity = ICDebugElementStatus.OK; + + /** + * The message of this element's status + */ private String fMessage = null; + /** + * The state of this element. + */ + private CDebugElementState fState = CDebugElementState.UNDEFINED; + /** * Constructor for CDebugElement. */ - public CDebugElement( CDebugTarget target ) - { + public CDebugElement( CDebugTarget target ) { setDebugTarget( target ); } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier() */ - public String getModelIdentifier() - { + public String getModelIdentifier() { return CDebugModel.getPluginIdentifier(); } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget() */ - public IDebugTarget getDebugTarget() - { + public IDebugTarget getDebugTarget() { return fDebugTarget; } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see org.eclipse.debug.core.model.IDebugElement#getLaunch() */ - public ILaunch getLaunch() - { + public ILaunch getLaunch() { return getDebugTarget().getLaunch(); } - protected void setDebugTarget( CDebugTarget target ) - { + protected void setDebugTarget( CDebugTarget target ) { fDebugTarget = target; } /** - * Logs the given exception. - * - * @param e the internal exception + * Convenience method to log errors */ - public void internalError( Exception e ) - { - logError( e ); - } - - /** - * Logs the given message. - * - * @param message the message - */ - public void internalError( String message ) - { - logError( message ); + protected void logError( Exception e ) { + DebugPlugin.log( e ); } /** * Convenience method to log errors - * + * */ - protected void logError( Exception e ) - { - CDebugCorePlugin.log( e ); - } - - /** - * Convenience method to log errors - * - */ - protected void logError( String message ) - { - CDebugCorePlugin.log( message ); + protected void logError( String message ) { + DebugPlugin.logMessage( message, null ); } /** @@ -127,89 +115,75 @@ public class CDebugElement extends PlatformObject * @param event The debug event to be fired to the listeners * @see org.eclipse.debug.core.DebugEvent */ - protected void fireEvent( DebugEvent event ) - { - DebugPlugin.getDefault().fireDebugEventSet( new DebugEvent[] { event } ); + protected void fireEvent( DebugEvent event ) { + DebugPlugin.getDefault().fireDebugEventSet( new DebugEvent[]{ event } ); } - protected void fireEventSet( DebugEvent[] events ) - { + protected void fireEventSet( DebugEvent[] events ) { DebugPlugin.getDefault().fireDebugEventSet( events ); } /** * Fires a debug event marking the creation of this element. */ - public void fireCreationEvent() - { + public void fireCreationEvent() { fireEvent( new DebugEvent( this, DebugEvent.CREATE ) ); } - public DebugEvent createCreateEvent() - { + public DebugEvent createCreateEvent() { return new DebugEvent( this, DebugEvent.CREATE ); } /** - * Fires a debug event marking the RESUME of this element with - * the associated detail. + * Fires a debug event marking the RESUME of this element with the associated detail. * * @param detail The int detail of the event * @see org.eclipse.debug.core.DebugEvent */ - public void fireResumeEvent( int detail ) - { + public void fireResumeEvent( int detail ) { fireEvent( new DebugEvent( this, DebugEvent.RESUME, detail ) ); } - public DebugEvent createResumeEvent( int detail ) - { + public DebugEvent createResumeEvent( int detail ) { return new DebugEvent( this, DebugEvent.RESUME, detail ); } /** - * Fires a debug event marking the SUSPEND of this element with - * the associated detail. + * Fires a debug event marking the SUSPEND of this element with the associated detail. * * @param detail The int detail of the event * @see org.eclipse.debug.core.DebugEvent */ - public void fireSuspendEvent( int detail ) - { + public void fireSuspendEvent( int detail ) { fireEvent( new DebugEvent( this, DebugEvent.SUSPEND, detail ) ); } - public DebugEvent createSuspendEvent( int detail ) - { + public DebugEvent createSuspendEvent( int detail ) { return new DebugEvent( this, DebugEvent.SUSPEND, detail ); } /** * Fires a debug event marking the termination of this element. */ - public void fireTerminateEvent() - { + public void fireTerminateEvent() { fireEvent( new DebugEvent( this, DebugEvent.TERMINATE ) ); } - public DebugEvent createTerminateEvent() - { + public DebugEvent createTerminateEvent() { return new DebugEvent( this, DebugEvent.TERMINATE ); } /** - * Fires a debug event marking the CHANGE of this element - * with the specifed detail code. + * Fires a debug event marking the CHANGE of this element with the specifed detail code. * - * @param detail one of STATE or CONTENT + * @param detail + * one of STATE or CONTENT */ - public void fireChangeEvent( int detail ) - { + public void fireChangeEvent( int detail ) { fireEvent( new DebugEvent( this, DebugEvent.CHANGE, detail ) ); } - public DebugEvent createChangeEvent( int detail ) - { + public DebugEvent createChangeEvent( int detail ) { return new DebugEvent( this, DebugEvent.CHANGE, detail ); } @@ -218,8 +192,7 @@ public class CDebugElement extends PlatformObject * * @return the CDI session */ - public ICDISession getCDISession() - { + public ICDISession getCDISession() { return getCDITarget().getSession(); } @@ -228,8 +201,7 @@ public class CDebugElement extends PlatformObject * * @return the underlying CDI target */ - public ICDITarget getCDITarget() - { + public ICDITarget getCDITarget() { return (ICDITarget)getDebugTarget().getAdapter( ICDITarget.class ); } @@ -240,23 +212,19 @@ public class CDebugElement extends PlatformObject * @param e Exception that has occurred (can be null) * @throws DebugException The exception with a status code of REQUEST_FAILED */ - public void requestFailed( String message, Exception e ) throws DebugException - { + public void requestFailed( String message, Exception e ) throws DebugException { requestFailed( message, e, DebugException.REQUEST_FAILED ); } - + /** - * Throws a new debug exception with a status code of TARGET_REQUEST_FAILED - * with the given underlying exception. If the underlying exception is not a JDI - * exception, the original exception is thrown. + * Throws a new debug exception with a status code of TARGET_REQUEST_FAILED with the given underlying exception. * * @param message Failure message * @param e underlying exception that has occurred * @throws DebugException The exception with a status code of TARGET_REQUEST_FAILED */ - public void targetRequestFailed( String message, CDIException e ) throws DebugException - { - requestFailed( MessageFormat.format( "Target request failed: {0}.", new String[] { message } ), e, DebugException.TARGET_REQUEST_FAILED ); //$NON-NLS-1$ + public void targetRequestFailed( String message, CDIException e ) throws DebugException { + requestFailed( MessageFormat.format( "Target request failed: {0}.", new String[]{ message } ), e, DebugException.TARGET_REQUEST_FAILED ); //$NON-NLS-1$ } /** @@ -267,11 +235,10 @@ public class CDebugElement extends PlatformObject * @param code status code * @throws DebugException a new exception with given status code */ - public void requestFailed( String message, Throwable e, int code ) throws DebugException - { + public void requestFailed( String message, Throwable e, int code ) throws DebugException { throwDebugException( message, code, e ); } - + /** * Throws a new debug exception with a status code of TARGET_REQUEST_FAILED. * @@ -279,64 +246,59 @@ public class CDebugElement extends PlatformObject * @param e Throwable that has occurred * @throws DebugException The exception with a status code of TARGET_REQUEST_FAILED */ - public void targetRequestFailed( String message, Throwable e ) throws DebugException - { - throwDebugException( MessageFormat.format( "Target request failed: {0}.", new String[] { message } ), DebugException.TARGET_REQUEST_FAILED, e ); //$NON-NLS-1$ + public void targetRequestFailed( String message, Throwable e ) throws DebugException { + throwDebugException( MessageFormat.format( "Target request failed: {0}.", new String[]{ message } ), DebugException.TARGET_REQUEST_FAILED, e ); //$NON-NLS-1$ } - + /** * Throws a new debug exception with a status code of NOT_SUPPORTED. * * @param message Failure message * @throws DebugException The exception with a status code of NOT_SUPPORTED. */ - public void notSupported(String message) throws DebugException { - throwDebugException(message, DebugException.NOT_SUPPORTED, null); + public void notSupported( String message ) throws DebugException { + throwDebugException( message, DebugException.NOT_SUPPORTED, null ); } - + /** - * Throws a debug exception with the given message, error code, and underlying - * exception. + * Throws a debug exception with the given message, error code, and underlying exception. */ - protected void throwDebugException( String message, int code, Throwable exception ) throws DebugException - { - throw new DebugException( new Status( IStatus.ERROR, - CDebugModel.getPluginIdentifier(), - code, - message, - exception ) ); + protected void throwDebugException( String message, int code, Throwable exception ) throws DebugException { + throw new DebugException( new Status( IStatus.ERROR, CDebugModel.getPluginIdentifier(), code, message, exception ) ); } - - protected void infoMessage( Throwable e ) - { - IStatus newStatus = new Status( IStatus.INFO, - CDebugCorePlugin.getUniqueIdentifier(), - ICDebugInternalConstants.STATUS_CODE_INFO, - e.getMessage(), - null ); + + protected void infoMessage( Throwable e ) { + IStatus newStatus = new Status( IStatus.INFO, CDebugCorePlugin.getUniqueIdentifier(), ICDebugInternalConstants.STATUS_CODE_INFO, e.getMessage(), null ); CDebugUtils.info( newStatus, getDebugTarget() ); } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class) */ - public Object getAdapter( Class adapter ) - { + public Object getAdapter( Class adapter ) { + if ( adapter.equals( IDebugElement.class ) ) + return this; + if ( adapter.equals( ICDebugElement.class ) ) + return this; + if ( adapter.equals( CDebugElement.class ) ) + return this; + if ( adapter.equals( ICDebugElementStatus.class ) ) + return this; if ( adapter.equals( ICDISession.class ) ) - return getCDISession(); - return super.getAdapter(adapter); + return getCDISession(); + return super.getAdapter( adapter ); } - protected void setStatus( int severity, String message ) - { + protected void setStatus( int severity, String message ) { fSeverity = severity; fMessage = message; if ( fMessage != null ) fMessage.trim(); } - protected void resetStatus() - { + protected void resetStatus() { fSeverity = ICDebugElementStatus.OK; fMessage = null; } @@ -344,24 +306,21 @@ public class CDebugElement extends PlatformObject /* (non-Javadoc) * @see org.eclipse.cdt.debug.core.model.ICDebugElementStatus#isOK() */ - public boolean isOK() - { - return ( fSeverity == ICDebugElementStatus.OK ); + public boolean isOK() { + return (fSeverity == ICDebugElementStatus.OK); } /* (non-Javadoc) * @see org.eclipse.cdt.debug.core.model.ICDebugElementStatus#getSeverity() */ - public int getSeverity() - { + public int getSeverity() { return fSeverity; } /* (non-Javadoc) * @see org.eclipse.cdt.debug.core.model.ICDebugElementStatus#getMessage() */ - public String getMessage() - { + public String getMessage() { return fMessage; } @@ -369,21 +328,17 @@ public class CDebugElement extends PlatformObject * @see org.eclipse.cdt.debug.core.model.ICDebugElement#getState() */ public CDebugElementState getState() { - // TODO Auto-generated method stub - return null; + return fState; } - /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.model.ICDebugElement#getStatus() - */ - public IStatus getStatus() { - // TODO Auto-generated method stub - return null; + + protected boolean isValidState( CDebugElementState state ) { + return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.model.ICDebugElement#getSubModelIdentifier() - */ - public String getSubModelIdentifier() { - // TODO Auto-generated method stub - return null; + + protected void setState( CDebugElementState state ) throws IllegalArgumentException { + if ( !isValidState( state ) ) { + throw new IllegalArgumentException( state.toString() ); + } + fState = state; } -} +} \ No newline at end of file