blob: 779a42116dbe72ef2ea8d247032e574e2d962a62 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Composent, Inc. 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: Scott Lewis - initial API and implementation
******************************************************************************/
package org.eclipse.ecf.remoteserviceadmin.ui.rsa.model;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.ui.model.IWorkbenchAdapter;
import org.eclipse.ui.model.IWorkbenchAdapter2;
import org.eclipse.ui.model.IWorkbenchAdapter3;
/**
* @since 3.3
*/
public class RSAAdapterFactory implements IAdapterFactory {
private ExportedServicesRootNodeWorkbenchAdapter exportedServicesRootAdapter = new ExportedServicesRootNodeWorkbenchAdapter();
private ImportedEndpointsRootNodeWorkbenchAdapter importedEndpointsRootAdapter = new ImportedEndpointsRootNodeWorkbenchAdapter();
private ExportRegistrationNodeWorkbenchAdapter exportRegistrationAdapter = new ExportRegistrationNodeWorkbenchAdapter();
private ImportRegistrationNodeWorkbenchAdapter importRegistrationAdapter = new ImportRegistrationNodeWorkbenchAdapter();
private NameValuePropertyNodeWorkbenchAdapter nameValuePropertyAdapter = new NameValuePropertyNodeWorkbenchAdapter();
private EndpointDescriptionRSANodeWorkbenchAdapter edAdapter = new EndpointDescriptionRSANodeWorkbenchAdapter();
private ExceptionNodeWorkbenchAdapter enAdapter = new ExceptionNodeWorkbenchAdapter();
@Override
public Object getAdapter(Object adaptableObject, @SuppressWarnings("rawtypes") Class adapterType) {
if (adapterType.isInstance(adaptableObject)) {
return adaptableObject;
}
if (adapterType == IWorkbenchAdapter.class || adapterType == IWorkbenchAdapter2.class
|| adapterType == IWorkbenchAdapter3.class) {
return getWorkbenchElement(adaptableObject);
}
return null;
}
protected Object getWorkbenchElement(Object adaptableObject) {
if (adaptableObject instanceof ExceptionNode || adaptableObject instanceof StackTraceElementNode)
return enAdapter;
if (adaptableObject instanceof ExportedServicesRootNode)
return exportedServicesRootAdapter;
if (adaptableObject instanceof ImportedEndpointsRootNode)
return importedEndpointsRootAdapter;
if (adaptableObject instanceof ExportRegistrationNode)
return exportRegistrationAdapter;
if (adaptableObject instanceof ImportRegistrationNode)
return importRegistrationAdapter;
if (adaptableObject instanceof NameValuePropertyNode)
return nameValuePropertyAdapter;
if (adaptableObject instanceof EndpointDescriptionRSANode)
return edAdapter;
return null;
}
@SuppressWarnings("rawtypes")
@Override
public Class[] getAdapterList() {
return new Class[] { IWorkbenchAdapter.class, IWorkbenchAdapter2.class, IWorkbenchAdapter3.class };
}
}