package net.sourceforge.phpeclipse.resourcesview;

import net.sourceforge.phpdt.internal.core.JavaProject;
import net.sourceforge.phpeclipse.PHPCore;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IAdapterFactory;

public class ResourceAdapterFactory implements IAdapterFactory {

	protected static Class[] ADAPTERS_I_CREATE = new Class[] { PHPElement.class, PHPFile.class, JavaProject.class };

	public ResourceAdapterFactory() {
		super();
	}

	public Object getAdapter(Object adaptableObject, Class adapterType) {
		if (PHPFile.class.equals(adapterType))
			return PHPCore.create((IFile) adaptableObject);

		if (JavaProject.class.equals(adapterType))
			return PHPCore.create((IProject) adaptableObject);

		if (PHPElement.class.equals(adapterType)) {
			if (adaptableObject instanceof IFile)
				return PHPCore.create((IFile) adaptableObject);

			if (adaptableObject instanceof IProject)
				return PHPCore.create((IProject) adaptableObject);
		}

		return null;
	}

	public Class[] getAdapterList() {
		return ADAPTERS_I_CREATE;
	}

}