/*=============================================================================#
# Copyright (c) 2010-2016 Stephan Wahlbrink (WalWare.de) 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:
# Stephan Wahlbrink - initial API and implementation
#=============================================================================*/
package de.walware.statet.r.internal.debug.ui.actions;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
import de.walware.statet.r.debug.ui.actions.RToggleBreakpointAdapter;
/**
* Creates adapters for retargettable actions in debug platform.
* Contributed via <code>org.eclipse.core.runtime.adapters</code>
* extension point.
*/
public class RetargettableActionAdapterFactory implements IAdapterFactory {
private static final Class<?>[] ADAPTERS= new Class<?>[] {
IToggleBreakpointsTarget.class
};
private IToggleBreakpointsTarget breakpointAdapter;
public RetargettableActionAdapterFactory() {
}
@Override
public Class<?>[] getAdapterList() {
return ADAPTERS;
}
@Override
public Object getAdapter(final Object adaptableObject, final Class adapterType) {
if (IToggleBreakpointsTarget.class.equals(adapterType)) {
synchronized (this) {
if (this.breakpointAdapter == null) {
this.breakpointAdapter= new RToggleBreakpointAdapter();
}
return this.breakpointAdapter;
}
}
return null;
}
}