package net.sf.eclipsefp.haskell.debug.ui.internal.debug; import net.sf.eclipsefp.haskell.ui.internal.editors.haskell.HaskellEditor; import net.sf.eclipsefp.haskell.util.FileUtil; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget; /** * factory for breakpoint adapter * @author JP Moresmau * */ public class HaskellBreakpointAdapterFactory implements IAdapterFactory { @Override public Object getAdapter( final Object adaptableObject, @SuppressWarnings("rawtypes") final Class adapterType ) { if (adaptableObject instanceof HaskellEditor) { HaskellEditor editorPart = (HaskellEditor) adaptableObject; IResource resource = (IResource) editorPart.getEditorInput().getAdapter(IResource.class); if (resource != null && FileUtil.hasHaskellExtension( resource )) { return new HaskellLineBreakpointAdapter(); } } return null; } @Override public Class<?>[] getAdapterList() { return new Class[]{IToggleBreakpointsTarget.class}; } }