From 1896936755bb85d0082c2f072beca9bb7cb99490 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Thu, 4 Nov 2004 15:56:16 +0000 Subject: [PATCH] CSignalManager no longer extends CUpdateManager. --- debug/org.eclipse.cdt.debug.core/ChangeLog | 4 + .../debug/internal/core/CSignalManager.java | 118 ++++++++---------- 2 files changed, 54 insertions(+), 68 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 5a9b0003a43..bf6b5469683 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,7 @@ +2004-11-04 Mikhail Khodjaiants + CSignalManager no longer extends CUpdateManager. + * CSignalManager.java + 2004-11-03 Mikhail Khodjaiants New implementation of expressions. Large arrays partitioning based on the framework model. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CSignalManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CSignalManager.java index 7ed2d8ef375..4c4c4f2961a 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CSignalManager.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CSignalManager.java @@ -11,11 +11,9 @@ package org.eclipse.cdt.debug.internal.core; import java.util.ArrayList; - import org.eclipse.cdt.debug.core.CDebugModel; import org.eclipse.cdt.debug.core.ICSignalManager; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.ICDIManager; import org.eclipse.cdt.debug.core.cdi.model.ICDISignal; import org.eclipse.cdt.debug.core.model.ICSignal; import org.eclipse.cdt.debug.internal.core.model.CDebugTarget; @@ -26,124 +24,108 @@ import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.DebugException; /** - * Enter type comment. - * - * @since: Jan 31, 2003 + * Manages the collection of signals on a debug target. */ -public class CSignalManager extends CUpdateManager implements ICSignalManager -{ +public class CSignalManager implements ICSignalManager { + + /** + * The debug target associated with this manager. + */ + private CDebugTarget fDebugTarget; + + /** + * The list of signals. + */ private ICSignal[] fSignals = null; + + /** + * The dispose flag. + */ private boolean fIsDisposed = false; /** * Constructor for CSignalManager. */ - public CSignalManager( CDebugTarget target ) - { - super( target ); + public CSignalManager( CDebugTarget target ) { + fDebugTarget = target; } /* (non-Javadoc) * @see org.eclipse.cdt.debug.core.ICSignalManager#getSignals() */ - public ICSignal[] getSignals() throws DebugException - { - if ( !isDisposed() && fSignals == null ) - { - try - { + public ICSignal[] getSignals() throws DebugException { + if ( !isDisposed() && fSignals == null ) { + try { ICDISignal[] cdiSignals = getDebugTarget().getCDITarget().getSignals(); ArrayList list = new ArrayList( cdiSignals.length ); - for ( int i = 0; i < cdiSignals.length; ++i ) - { + for( int i = 0; i < cdiSignals.length; ++i ) { list.add( new CSignal( getDebugTarget(), cdiSignals[i] ) ); } fSignals = (ICSignal[])list.toArray( new ICSignal[list.size()] ); } - catch( CDIException e ) - { + catch( CDIException e ) { throwDebugException( e.getMessage(), DebugException.TARGET_REQUEST_FAILED, e ); } } - return ( fSignals != null ) ? fSignals : new ICSignal[0]; + return (fSignals != null) ? fSignals : new ICSignal[0]; } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.ICSignalManager#dispose() + * @see org.eclipse.cdt.debug.internal.core.CUpdateManager#dispose() */ - public void dispose() - { + public void dispose() { if ( fSignals != null ) - for ( int i = 0; i < fSignals.length; ++i ) - { - ((CSignal)fSignals[i]).dispose(); - } + for( int i = 0; i < fSignals.length; ++i ) { + ((CSignal)fSignals[i]).dispose(); + } fSignals = null; fIsDisposed = true; - super.dispose(); } /* (non-Javadoc) - * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class) + * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) */ - public Object getAdapter( Class adapter ) - { - if ( adapter.equals( ICSignalManager.class ) ) - { + public Object getAdapter( Class adapter ) { + if ( adapter.equals( ICSignalManager.class ) ) { return this; } - if ( adapter.equals( CSignalManager.class ) ) - { + if ( adapter.equals( CSignalManager.class ) ) { return this; } - return super.getAdapter( adapter ); + return null; } - - public void signalChanged( ICDISignal cdiSignal ) - { + + public void signalChanged( ICDISignal cdiSignal ) { CSignal signal = find( cdiSignal ); - if ( signal != null ) - { + if ( signal != null ) { signal.fireChangeEvent( DebugEvent.STATE ); } } - private CSignal find( ICDISignal cdiSignal ) - { - try - { + private CSignal find( ICDISignal cdiSignal ) { + try { ICSignal[] signals = getSignals(); - for ( int i = 0; i < signals.length; ++i ) + for( int i = 0; i < signals.length; ++i ) if ( signals[i].getName().equals( cdiSignal.getName() ) ) return (CSignal)signals[i]; } - catch( DebugException e ) - { + catch( DebugException e ) { } return null; } - - protected boolean isDisposed() - { + + protected boolean isDisposed() { return fIsDisposed; } - protected ICDIManager getCDIManager() - { - //FIXME: To change we no longer have a ICDISignalManager. - return 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 CDebugTarget getDebugTarget() { + return fDebugTarget; + } +} \ No newline at end of file