package com.redhat.ceylon.eclipse.core.adapters; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdapterFactory; 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.IResourceAware; import com.redhat.ceylon.ide.common.model.IUnit; public class ResourceAdapterFactory implements IAdapterFactory { private static Class<?>[] ADAPTER_LIST= new Class[] { IUnit.class, IResourceAware.class, BaseIdeModule.class, Package.class, }; public Class<?>[] getAdapterList() { return ADAPTER_LIST; } public Object getAdapter(Object element, @SuppressWarnings("rawtypes") Class key) { IResource resource = (IResource) element; if (IUnit.class.equals(key) && resource instanceof IFile) { return CeylonBuilder.getUnit((IFile) resource); } if (IResourceAware.class.equals(key) && resource instanceof IFile) { return CeylonBuilder.getUnit((IFile) resource); } if (Package.class.equals(key) && element instanceof IFolder) { return CeylonBuilder.getPackage((IFolder) element); } if (BaseIdeModule.class.equals(key) && element instanceof IFolder) { return CeylonBuilder.asSourceModule((IFolder) element); } return null; } }