package com.redhat.ceylon.eclipse.core.adapters; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IPackageFragment; import com.redhat.ceylon.model.typechecker.model.Package; import com.redhat.ceylon.eclipse.core.builder.CeylonBuilder; import com.redhat.ceylon.ide.common.model.BaseIdeModule; import com.redhat.ceylon.ide.common.model.IJavaModelAware; import com.redhat.ceylon.ide.common.model.IUnit; public class JavaElementAdapterFactory implements IAdapterFactory { private static Class<?>[] ADAPTER_LIST= new Class[] { IUnit.class, IJavaModelAware.class, BaseIdeModule.class, Package.class, }; public Class<?>[] getAdapterList() { return ADAPTER_LIST; } public Object getAdapter(Object element, @SuppressWarnings("rawtypes") Class key) { IJavaElement javaElement = (IJavaElement) element; if (IUnit.class.equals(key)) { return CeylonBuilder.getUnit(javaElement); } if (IJavaModelAware.class.equals(key)) { return CeylonBuilder.getUnit(javaElement); } if (Package.class.equals(key) && element instanceof IPackageFragment) { return CeylonBuilder.getPackage((IPackageFragment) element); } if (BaseIdeModule.class.equals(key) && element instanceof IPackageFragment) { return CeylonBuilder.asSourceModule((IPackageFragment) element); } return null; } }