package com.tibco.as.spacebar.ui.adapter;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.ui.views.properties.IPropertySource;
import com.tibco.as.spacebar.ui.editor.SpaceEditorInput;
import com.tibco.as.spacebar.ui.model.Field;
import com.tibco.as.spacebar.ui.model.IElement;
import com.tibco.as.spacebar.ui.model.Index;
import com.tibco.as.spacebar.ui.model.Member;
import com.tibco.as.spacebar.ui.model.Metaspace;
import com.tibco.as.spacebar.ui.model.Space;
import com.tibco.as.spacebar.ui.model.SpaceMember;
@SuppressWarnings("rawtypes")
public class AdapterFactory implements IAdapterFactory {
@Override
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adapterType == IPropertySource.class) {
if (adaptableObject instanceof Metaspace) {
return new MetaspacePropertySource((Metaspace) adaptableObject);
}
if (adaptableObject instanceof Space) {
return new SpacePropertySource((Space) adaptableObject);
}
if (adaptableObject instanceof Field) {
return new FieldPropertySource((Field) adaptableObject);
}
if (adaptableObject instanceof Index) {
return new IndexPropertySource((Index) adaptableObject);
}
if (adaptableObject instanceof SpaceEditorInput) {
return new BrowserInputPropertySource(
(SpaceEditorInput) adaptableObject);
}
if (adaptableObject instanceof SpaceMember) {
return new SpaceMemberPropertySource(
(SpaceMember) adaptableObject);
}
if (adaptableObject instanceof Member) {
return new MemberPropertySource((Member) adaptableObject);
}
}
if (adapterType == IElement.class) {
if (adaptableObject instanceof SpaceEditorInput) {
return ((SpaceEditorInput) adaptableObject).getSpace();
}
}
return null;
}
@Override
public Class[] getAdapterList() {
return new Class[] { IPropertySource.class };
}
}