/******************************************************************************* * Copyright (c) 2004 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * Bjorn Freeman-Benson - initial API and implementation *******************************************************************************/ package rhogenwizard.debugger.model; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.Status; 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; import rhogenwizard.constants.DebugConstants; /** * Common function of PDA debug model elements */ public abstract class DebugElement extends PlatformObject implements IDebugElement { // containing target protected DebugTarget m_debugTarget; /** * Constructs a new debug element contained in the given * debug target. * * @param target debug target (PDA VM) */ public DebugElement(DebugTarget target) { m_debugTarget = target; } public String getModelIdentifier() { return DebugConstants.debugModelId; } public IDebugTarget getDebugTarget() { return m_debugTarget; } public ILaunch getLaunch() { return getDebugTarget().getLaunch(); } public Object getAdapter(Class adapter) { if (adapter == IDebugElement.class) { return this; } return super.getAdapter(adapter); } protected void abort(String message, Throwable e) throws DebugException { throw new DebugException(new Status(IStatus.ERROR, "", DebugPlugin.INTERNAL_ERROR, message, e)); } /** * Fires a debug event * * @param event the event to be fired */ protected void fireEvent(DebugEvent event) { DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {event}); } /** * Fires a <code>CREATE</code> event for this element. */ protected void fireCreationEvent() { fireEvent(new DebugEvent(this, DebugEvent.CREATE)); } /** * Fires a <code>RESUME</code> event for this element with * the given detail. * * @param detail event detail code */ public void fireResumeEvent(int detail) { fireEvent(new DebugEvent(this, DebugEvent.RESUME, detail)); } /** * Fires a <code>SUSPEND</code> event for this element with * the given detail. * * @param detail event detail code */ public void fireSuspendEvent(int detail) { fireEvent(new DebugEvent(this, DebugEvent.SUSPEND, detail)); } /** * Fires a <code>TERMINATE</code> event for this element. */ protected void fireTerminateEvent() { fireEvent(new DebugEvent(this, DebugEvent.TERMINATE)); } }