package org.objectstyle.wolips.core.resources; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.JavaModelException; public class WOLipsResourceAdapterFactory implements IAdapterFactory { public Object getAdapter(Object adaptableObject, Class adapterType) { Object processedAdaptableObject = adaptableObject; if (adaptableObject instanceof ICompilationUnit) { try { processedAdaptableObject = ((ICompilationUnit) adaptableObject).getUnderlyingResource(); } catch (JavaModelException e) { processedAdaptableObject = null; } } IWOLipsResource wolipsResource; if (processedAdaptableObject instanceof IResource) { IResource resource = (IResource) processedAdaptableObject; String extension = resource.getFileExtension(); if (ComponentWOLipsResource.isComponentExtension(extension)) { wolipsResource = new ComponentWOLipsResource(resource); } else if ("eomodeld".equalsIgnoreCase(extension) || "eogen".equalsIgnoreCase(extension)) { wolipsResource = new EOModelWOLipsResource(resource); } else { wolipsResource = new GenericWOLipsResource(resource); } } else { wolipsResource = null; } return wolipsResource; } public Class[] getAdapterList() { return new Class[] { IWOLipsResource.class }; } }