/** * */ package net.sourceforge.phpeclipse.xdebug.php.model; import net.sourceforge.phpeclipse.xdebug.core.ResponseData; import net.sourceforge.phpeclipse.xdebug.php.launching.IXDebugConstants; import org.eclipse.core.runtime.PlatformObject; 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; /** * @author Christian * */ public class XDebugElement extends PlatformObject implements IDebugElement { // containing target protected XDebugTarget fTarget; /** * Constructs a new debug element contained in the given debug target. * * @param target * debug target (PDA VM) */ public XDebugElement(XDebugTarget target) { fTarget = target; } /* * (non-Javadoc) * * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier() */ public String getModelIdentifier() { return IXDebugConstants.ID_PHP_DEBUG_MODEL; } /* * (non-Javadoc) * * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget() */ public IDebugTarget getDebugTarget() { return fTarget; } /* * (non-Javadoc) * * @see org.eclipse.debug.core.model.IDebugElement#getLaunch() */ public ILaunch getLaunch() { return getDebugTarget().getLaunch(); } /* * (non-Javadoc) * * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) */ public Object getAdapter(Class adapter) { if (adapter == IDebugElement.class) { return this; } return super.getAdapter(adapter); } protected void abort(String message, Throwable e) throws DebugException { /* * Axel auskommentiert throw new DebugException(new * Status(IStatus.ERROR, * DebugExamplesPlugin.getDefault().getDescriptor().getUniqueIdentifier(), * 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 CREATE event for this element. */ public void fireCreationEvent() { fireEvent(new DebugEvent(this, DebugEvent.CREATE)); } /** * Fires a RESUME 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 SUSPEND 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 TERMINATE event for this element. */ protected void fireTerminateEvent() { fireEvent(new DebugEvent(this, DebugEvent.TERMINATE)); } public void fireDebugResponseEvent(ResponseData data) { DebugEvent de = new DebugEvent(this, DebugEvent.MODEL_SPECIFIC); de.setData(data); fireEvent(de); } }