/******************************************************************************* * Copyright (c) 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * Zend Technologies *******************************************************************************/ package org.eclipse.php.internal.debug.ui.breakpoint.provider; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.*; import org.eclipse.jface.text.IDocument; import org.eclipse.php.internal.debug.ui.PHPDebugUIPlugin; import org.eclipse.php.internal.ui.PHPUiPlugin; import org.eclipse.ui.IEditorInput; import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools; import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider; public class PHPBreakpointProvider implements IBreakpointProvider, IExecutableExtension { private IPHPBreakpointProvider provider; public PHPBreakpointProvider() { IExtensionRegistry registry = Platform.getExtensionRegistry(); IConfigurationElement[] elements = registry.getConfigurationElementsFor(PHPDebugUIPlugin.getID(), "phpBreakpointProviders"); //$NON-NLS-1$ for (IConfigurationElement element : elements) { if ("provider".equals(element.getName())) { //$NON-NLS-1$ try { provider = (IPHPBreakpointProvider) element.createExecutableExtension("class"); //$NON-NLS-1$ break; } catch (CoreException e) { PHPUiPlugin.log(e); } } } if (provider == null) { provider = new DefaultPHPBreakpointProvider(); } } public IStatus addBreakpoint(IDocument document, IEditorInput input, int lineNumber, int offset) throws CoreException { return provider.addBreakpoint(document, input, lineNumber, offset); } public IResource getResource(IEditorInput input) { return provider.getResource(input); } public void setSourceEditingTextTools(ISourceEditingTextTools tool) { provider.setSourceEditingTextTools(tool); } public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { provider.setInitializationData(config, propertyName, data); } }