Java源码示例:org.eclipse.core.runtime.IAdapterManager
示例1
/**
* Returns an instance of the adaptable object with type of adapterType, or
* null if the given object could not be adapted to that type. See
* {@link IAdapterManager#getAdapter(Object, Class)}.
*/
@SuppressWarnings("unchecked")
public static <T> T getAdapter(Object adaptable,
Class<? extends T> adapterType) {
/*
* Try a simple instanceof check. This also safeguards against a misuse of
* getAdapter. For example, ISelection is adaptable (there is a
* SelectionAdapterFactory), so the user may incorrectly try adapting it to
* IStructuredSelection. However, in this case, the implementation of
* SelectionAdapterFactory would return null.
*/
if (adapterType.isInstance(adaptable)) {
return (T) adaptable;
}
IAdapterManager adapterManager = Platform.getAdapterManager();
assert (adapterManager != null);
return (T) adapterManager.getAdapter(adaptable, adapterType);
}
示例2
/**
* Tries to adapt each object to the given class.
*
* @param objects objects that are tried to adapted
* @param clazz class to adapt each object to
* @param adapterManager the adapterManager that is used to adapt the objects
* @return all objects that were adapted or <code>null</code> if the object array is <code>null
* </code>
*/
public static <T> List<T> getAdaptableObjects(
Object[] objects, Class<? extends T> clazz, IAdapterManager adapterManager) {
if (objects == null) return null;
Set<T> adaptableObjects = new HashSet<T>(objects.length);
for (Object object : objects) {
T adaptedObject = adapterManager.getAdapter(object, clazz);
if (adaptedObject != null && !adaptableObjects.contains(adaptedObject)) {
adaptableObjects.add(adaptedObject);
}
}
return new ArrayList<T>(adaptableObjects);
}
示例3
@Before
public void createMock() {
adapterManager = EasyMock.createMock(IAdapterManager.class);
EasyMock.expect(
adapterManager.getAdapter(EasyMock.anyObject(), EasyMock.anyObject(Class.class)))
.andAnswer(
new IAnswer<Object>() {
@Override
public Object answer() throws Throwable {
return EasyMock.getCurrentArguments()[0];
}
})
.anyTimes();
EasyMock.replay(adapterManager);
}
示例4
/**
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
*/
public <T> T getAdapter(Class<T> adapter) {
// lookup the IAdapterManager service
final IAdapterManager manager = Platform.getAdapterManager();
// forward the request to IAdapterManager service
return manager.getAdapter(this, adapter);
}
示例5
public void startup(IProgressMonitor monitor) throws CoreException {
IAdapterManager mgr = Platform.getAdapterManager();
// adapterFactory to translate IResource to ISVNResource
localResourceAdapterFactory = new LocalResourceAdapterFactory();
mgr.registerAdapters(localResourceAdapterFactory,IResource.class);
}
示例6
private void registerActions( )
{
final IActionBars actionBars = getViewSite( ).getActionBars( );
IToolBarManager toolbarManager = actionBars.getToolBarManager( );
exportAction = new ExportSampleReportAction( instance );
toolbarManager.add( exportAction );
toolbarManager.add( new Separator( ) );
Object adapter = null;
int status = Platform.getAdapterManager( ).queryAdapter( this,
IAction.class.getName( ) );
if ( status == IAdapterManager.LOADED )
{
adapter = Platform.getAdapterManager( ).getAdapter( this,
IAction.class );
}
else if ( status == IAdapterManager.NOT_LOADED )
{
// Cause the plug-in loading first
adapter = Platform.getAdapterManager( ).loadAdapter( this,
IAction.class.getName( ) );
}
if ( adapter != null )
{
importAction = ( (IOpenSampleReportAction) adapter );
importAction.setMainComposite( instance );
toolbarManager.add( (Action) importAction );
}
actionBars.updateActionBars( );
}
示例7
public static IAdapterManager getAdapterManager( )
{
if ( platform != null )
{
return platform.getAdapterManager( );
}
return null;
}
示例8
public void shutdown(IProgressMonitor monitor) throws CoreException {
IAdapterManager mgr = Platform.getAdapterManager();
mgr.unregisterAdapters(localResourceAdapterFactory);
localResourceAdapterFactory = null;
}
示例9
public static <T> T getAdapter( Object adaptable, Class<T> adapterClass )
{
IAdapterManager adapterManager = org.eclipse.birt.core.framework.Platform.getAdapterManager( );
return adapterClass.cast( adapterManager.loadAdapter( adaptable,
adapterClass.getName( ) ) );
}
示例10
public IAdapterManager getAdapterManager( )
{
return AdapterManager.getDefault( );
}
示例11
public IAdapterManager getAdapterManager( )
{
return Platform.getAdapterManager( );
}
示例12
/**
* Gets adapter from extension point.
*
* @param <T>
* @param adaptable
* @param type
* @return adapter class
* @since 2.5.1
*/
public static <T> T getAdapter( Object adaptable, Class<T> type )
{
// use BIRT platform as the Eclipse platform may throws exception if the
// OSGi is not started
IAdapterManager adapterManager = org.eclipse.birt.core.framework.Platform.getAdapterManager( );
return type.cast( adapterManager.loadAdapter( adaptable, type.getName( ) ) );
}
示例13
IAdapterManager getAdapterManager( );