diff options
Diffstat (limited to 'org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java')
-rw-r--r-- | org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java | 153 |
1 files changed, 104 insertions, 49 deletions
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java index 5c16e4699..41ec23895 100644 --- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java +++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/BreakpointListenerManager.java @@ -42,57 +42,65 @@ public class BreakpointListenerManager { /** * Map java breakpoint listeners by id */ - private static Map fgJavaBreakpointListenersMap; - + private static Map<String, JavaBreakpointListenerProxy> fgJavaBreakpointListenersMap; + /** * Global listeners */ private static IJavaBreakpointListener[] fgGlobalListeners; - + private static final String VALUE_GLOBAL = "*"; //$NON-NLS-1$ private static final String ATTR_ID = "id"; //$NON-NLS-1$ private static final String ATTR_CLASS = "class"; //$NON-NLS-1$ private static final String ATTR_FILTER = "filter"; //$NON-NLS-1$ - + /** * Proxy to a breakpoint listener */ - private class JavaBreakpointListenerProxy implements IJavaBreakpointListener { + private class JavaBreakpointListenerProxy implements + IJavaBreakpointListener { private IConfigurationElement fConfigElement; private IJavaBreakpointListener fDelegate; - + public JavaBreakpointListenerProxy(IConfigurationElement element) { fConfigElement = element; } - + /** * Returns the underlying delegate or <code>null</code> if none/error * * @return breakpoint listener extension */ private synchronized IJavaBreakpointListener getDelegate() { - if (fDelegate == null) { + if (fDelegate == null) { try { - fDelegate = (IJavaBreakpointListener) fConfigElement.createExecutableExtension(ATTR_CLASS); + fDelegate = (IJavaBreakpointListener) fConfigElement + .createExecutableExtension(ATTR_CLASS); } catch (CoreException e) { JDIDebugPlugin.log(e); } } - - return fDelegate; + + return fDelegate; } - /* (non-Javadoc) - * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#addingBreakpoint(org.eclipse.jdt.debug.core.IJavaDebugTarget, org.eclipse.jdt.debug.core.IJavaBreakpoint) + /* + * (non-Javadoc) + * + * @see + * org.eclipse.jdt.debug.core.IJavaBreakpointListener#addingBreakpoint + * (org.eclipse.jdt.debug.core.IJavaDebugTarget, + * org.eclipse.jdt.debug.core.IJavaBreakpoint) */ - public void addingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint) { + public void addingBreakpoint(IJavaDebugTarget target, + IJavaBreakpoint breakpoint) { IJavaBreakpointListener delegate = getDelegate(); if (delegate != null) { delegate.addingBreakpoint(target, breakpoint); } } - + /** * Whether this listener is for all breakpoints. * @@ -106,28 +114,45 @@ public class BreakpointListenerManager { return false; } - /* (non-Javadoc) - * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointHasCompilationErrors(org.eclipse.jdt.debug.core.IJavaLineBreakpoint, org.eclipse.jdt.core.dom.Message[]) + /* + * (non-Javadoc) + * + * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener# + * breakpointHasCompilationErrors + * (org.eclipse.jdt.debug.core.IJavaLineBreakpoint, + * org.eclipse.jdt.core.dom.Message[]) */ - public void breakpointHasCompilationErrors(IJavaLineBreakpoint breakpoint, Message[] errors) { + public void breakpointHasCompilationErrors( + IJavaLineBreakpoint breakpoint, Message[] errors) { IJavaBreakpointListener delegate = getDelegate(); if (delegate != null) { delegate.breakpointHasCompilationErrors(breakpoint, errors); } } - /* (non-Javadoc) - * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointHasRuntimeException(org.eclipse.jdt.debug.core.IJavaLineBreakpoint, org.eclipse.debug.core.DebugException) + /* + * (non-Javadoc) + * + * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener# + * breakpointHasRuntimeException + * (org.eclipse.jdt.debug.core.IJavaLineBreakpoint, + * org.eclipse.debug.core.DebugException) */ - public void breakpointHasRuntimeException(IJavaLineBreakpoint breakpoint, DebugException exception) { + public void breakpointHasRuntimeException( + IJavaLineBreakpoint breakpoint, DebugException exception) { IJavaBreakpointListener delegate = getDelegate(); if (delegate != null) { delegate.breakpointHasRuntimeException(breakpoint, exception); } } - /* (non-Javadoc) - * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointHit(org.eclipse.jdt.debug.core.IJavaThread, org.eclipse.jdt.debug.core.IJavaBreakpoint) + /* + * (non-Javadoc) + * + * @see + * org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointHit( + * org.eclipse.jdt.debug.core.IJavaThread, + * org.eclipse.jdt.debug.core.IJavaBreakpoint) */ public int breakpointHit(IJavaThread thread, IJavaBreakpoint breakpoint) { IJavaBreakpointListener delegate = getDelegate(); @@ -137,54 +162,82 @@ public class BreakpointListenerManager { return IJavaBreakpointListener.DONT_CARE; } - /* (non-Javadoc) - * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointInstalled(org.eclipse.jdt.debug.core.IJavaDebugTarget, org.eclipse.jdt.debug.core.IJavaBreakpoint) + /* + * (non-Javadoc) + * + * @see + * org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointInstalled + * (org.eclipse.jdt.debug.core.IJavaDebugTarget, + * org.eclipse.jdt.debug.core.IJavaBreakpoint) */ - public void breakpointInstalled(IJavaDebugTarget target, IJavaBreakpoint breakpoint) { + public void breakpointInstalled(IJavaDebugTarget target, + IJavaBreakpoint breakpoint) { IJavaBreakpointListener delegate = getDelegate(); if (delegate != null) { delegate.breakpointInstalled(target, breakpoint); } } - /* (non-Javadoc) - * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointRemoved(org.eclipse.jdt.debug.core.IJavaDebugTarget, org.eclipse.jdt.debug.core.IJavaBreakpoint) + /* + * (non-Javadoc) + * + * @see + * org.eclipse.jdt.debug.core.IJavaBreakpointListener#breakpointRemoved + * (org.eclipse.jdt.debug.core.IJavaDebugTarget, + * org.eclipse.jdt.debug.core.IJavaBreakpoint) */ - public void breakpointRemoved(IJavaDebugTarget target, IJavaBreakpoint breakpoint) { + public void breakpointRemoved(IJavaDebugTarget target, + IJavaBreakpoint breakpoint) { IJavaBreakpointListener delegate = getDelegate(); if (delegate != null) { delegate.breakpointRemoved(target, breakpoint); } } - /* (non-Javadoc) - * @see org.eclipse.jdt.debug.core.IJavaBreakpointListener#installingBreakpoint(org.eclipse.jdt.debug.core.IJavaDebugTarget, org.eclipse.jdt.debug.core.IJavaBreakpoint, org.eclipse.jdt.debug.core.IJavaType) + /* + * (non-Javadoc) + * + * @see + * org.eclipse.jdt.debug.core.IJavaBreakpointListener#installingBreakpoint + * (org.eclipse.jdt.debug.core.IJavaDebugTarget, + * org.eclipse.jdt.debug.core.IJavaBreakpoint, + * org.eclipse.jdt.debug.core.IJavaType) */ - public int installingBreakpoint(IJavaDebugTarget target, IJavaBreakpoint breakpoint, IJavaType type) { + public int installingBreakpoint(IJavaDebugTarget target, + IJavaBreakpoint breakpoint, IJavaType type) { IJavaBreakpointListener delegate = getDelegate(); if (delegate != null) { return delegate.installingBreakpoint(target, breakpoint, type); } return IJavaBreakpointListener.DONT_CARE; } - + } - + /** * Load extensions. */ private synchronized void init() { if (fgJavaBreakpointListenersMap == null) { - fgJavaBreakpointListenersMap = new HashMap(); - List global = new ArrayList(); - IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(JDIDebugPlugin.getUniqueIdentifier(), JDIDebugPlugin.EXTENSION_POINT_JAVA_BREAKPOINT_LISTENERS); - IConfigurationElement[] actionDelegateElements= extensionPoint.getConfigurationElements(); - for (int i= 0; i < actionDelegateElements.length; i++) { + fgJavaBreakpointListenersMap = new HashMap<String, JavaBreakpointListenerProxy>(); + List<JavaBreakpointListenerProxy> global = new ArrayList<JavaBreakpointListenerProxy>(); + IExtensionPoint extensionPoint = Platform + .getExtensionRegistry() + .getExtensionPoint( + JDIDebugPlugin.getUniqueIdentifier(), + JDIDebugPlugin.EXTENSION_POINT_JAVA_BREAKPOINT_LISTENERS); + IConfigurationElement[] actionDelegateElements = extensionPoint + .getConfigurationElements(); + for (IConfigurationElement actionDelegateElement : actionDelegateElements) { try { - String id = actionDelegateElements[i].getAttribute(ATTR_ID); + String id = actionDelegateElement.getAttribute(ATTR_ID); if (id == null) - throw new CoreException(new Status(IStatus.ERROR, JDIDebugPlugin.getUniqueIdentifier(), "Java breakpoint listener requires an identifier attribute.")); //$NON-NLS-1$ - JavaBreakpointListenerProxy listener = new JavaBreakpointListenerProxy(actionDelegateElements[i]); + throw new CoreException( + new Status(IStatus.ERROR, JDIDebugPlugin + .getUniqueIdentifier(), + "Java breakpoint listener requires an identifier attribute.")); //$NON-NLS-1$ + JavaBreakpointListenerProxy listener = new JavaBreakpointListenerProxy( + actionDelegateElement); fgJavaBreakpointListenersMap.put(id, listener); if (listener.isGlobal()) { global.add(listener); @@ -193,25 +246,27 @@ public class BreakpointListenerManager { JDIDebugPlugin.log(e); } } - fgGlobalListeners = (IJavaBreakpointListener[]) global.toArray(new IJavaBreakpointListener[global.size()]); + fgGlobalListeners = global + .toArray(new IJavaBreakpointListener[global.size()]); } } /** - * Returns the listener registered with the given identifier or <code>null</code> - * if none. + * Returns the listener registered with the given identifier or + * <code>null</code> if none. * - * @param id extension identifier + * @param id + * extension identifier * @return breakpoint listener or <code>null</code> */ public IJavaBreakpointListener getBreakpointListener(String id) { init(); - return (IJavaBreakpointListener)fgJavaBreakpointListenersMap.get(id); + return fgJavaBreakpointListenersMap.get(id); } /** - * Returns breakpoint listener extensions registered to listen for changes to - * all breakpoints. + * Returns breakpoint listener extensions registered to listen for changes + * to all breakpoints. * * @return global listeners */ |