1 /*******************************************************************************2 * Copyright (c) 2006, 2007 IBM Corporation and others.3 * All rights reserved. This program and the accompanying materials4 * are made available under the terms of the Eclipse Public License v1.05 * which accompanies this distribution, and is available at6 * http://www.eclipse.org/legal/epl-v10.html7 *8 * Contributors:9 * IBM Corporation - initial API and implementation10 *******************************************************************************/11 package org.eclipse.debug.internal.core.commands;12 13 import org.eclipse.core.runtime.CoreException;14 import org.eclipse.core.runtime.IAdaptable;15 import org.eclipse.debug.core.commands.IDisconnectHandler;16 import org.eclipse.debug.core.model.IDisconnect;17 18 /**19 * Default disconnect command for the standard debug model.20 * 21 * @since 3.322 */23 public class DisconnectCommand extends ForEachCommand implements IDisconnectHandler {24 25 protected Object getTarget(Object element) {26 if (element instanceof IDisconnect) {27 return element;28 } else if (element instanceof IAdaptable) {29 return ((IAdaptable) element).getAdapter(IDisconnect.class);30 }31 return null;32 }33 34 /* (non-Javadoc)35 * @see org.eclipse.debug.internal.core.commands.ForEachCommand#execute(java.lang.Object)36 */37 protected void execute(Object target) throws CoreException {38 ((IDisconnect)target).disconnect();39 }40 41 /* (non-Javadoc)42 * @see org.eclipse.debug.internal.core.commands.ForEachCommand#isExecutable(java.lang.Object)43 */44 protected boolean isExecutable(Object target) {45 return ((IDisconnect)target).canDisconnect();46 }47 }48