/** * @see ILaunch#getDebugTarget() */ @Override public IDebugTarget getDebugTarget() { if (!getDebugTargets0().isEmpty()) { return getDebugTargets0().get(0); } return null; }
/** * @see ILaunch#removeDebugTarget(IDebugTarget) */ @Override public void removeDebugTarget(IDebugTarget target) { if (target != null) { if (getDebugTargets0().remove(target)) { fireChanged(); } } }
/** * @see ILaunch#getChildren() */ @Override public Object[] getChildren() { ArrayList<Object> children = new ArrayList<Object>(getDebugTargets0()); children.addAll(getProcesses0()); return children.toArray(); }
/** * @see ILaunch#hasChildren() */ @Override public boolean hasChildren() { return getProcesses0().size() > 0 || (getDebugTargets0().size() > 0); }
/** * @see ILaunch#addDebugTarget(IDebugTarget) */ @Override public void addDebugTarget(IDebugTarget target) { if (target != null) { if (!getDebugTargets0().contains(target)) { addEventListener(); getDebugTargets0().add(target); fireChanged(); } } }
/** * @see org.eclipse.debug.core.model.ITerminate#isTerminated() */ @Override public boolean isTerminated() { if (getProcesses0().isEmpty() && getDebugTargets0().isEmpty()) { return false; } for (IProcess process : getProcesses0()) { if (!process.isTerminated()) { return false; } } for (IDebugTarget target : getDebugTargets0()) { if (!(target.isTerminated() || target.isDisconnected())) { return false; } } return true; }
/** * Returns whether any processes or targets can be disconnected. * Ones that are already terminated or disconnected are ignored. * * @see org.eclipse.debug.core.model.IDisconnect#canDisconnect() */ @Override public boolean canDisconnect() { for (IProcess process : getProcesses0()) { if (process instanceof IDisconnect) { if (((IDisconnect) process).canDisconnect()) { return true; } } } for (IDebugTarget target : getDebugTargets0()) { if (target.canDisconnect()) { return true; } } return false; }
/** * @see org.eclipse.debug.core.model.ITerminate#canTerminate() */ @Override public boolean canTerminate() { for (IProcess process : getProcesses0()) { if (process.canTerminate()) { return true; } } for (IDebugTarget target : getDebugTargets0()) { if (target.canTerminate() || target.canDisconnect()) { return true; } } return false; }
/** * Returns whether all of the contained targets and processes are * disconnected. Processes that don't support disconnecting are not * counted. * * @see org.eclipse.debug.core.model.IDisconnect#isDisconnected() */ @Override public boolean isDisconnected() { for (IProcess process : getProcesses0()) { if (process instanceof IDisconnect) { if (!((IDisconnect) process).isDisconnected()) { return false; } } } for (IDebugTarget target : getDebugTargets0()) { if (!target.isDisconnected()) { return false; } } // only return true if there are processes or targets that are disconnected return hasChildren(); }
/** * @see org.eclipse.debug.core.model.IDisconnect#disconnect() */ @Override public void disconnect() throws DebugException { for (IProcess process : getProcesses0()) { if (process instanceof IDisconnect) { IDisconnect dis = (IDisconnect) process; if (dis.canDisconnect()) { dis.disconnect(); } } } for (IDebugTarget target : getDebugTargets0()) { if (target.canDisconnect()) { target.disconnect(); } } }