/*
* Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved.
*
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License, Version 1.0,
* which accompanies this distribution and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
*/
package net.rim.ejde.internal;
import net.rim.ejde.internal.model.BlackBerryProject;
import net.rim.ejde.internal.model.BlackBerryProjectCoreNature;
import org.apache.log4j.Logger;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
public class BlackBerryAdapterFactory implements IAdapterFactory {
static private final Logger _log = Logger.getLogger( BlackBerryAdapterFactory.class );
public Object getAdapter( Object adaptableObject, Class adapterType ) {
IJavaProject javaProj;
IProject iproj;
try {
if( adaptableObject instanceof IProject && ( iproj = (IProject) adaptableObject ).isOpen() ) {
if( iproj.hasNature( BlackBerryProjectCoreNature.NATURE_ID ) ) {
javaProj = JavaCore.create( iproj );
return new BlackBerryProject( javaProj );
}
} else if( adaptableObject instanceof IJavaProject
&& ( javaProj = (IJavaProject) adaptableObject ).getProject().isOpen() ) {
if( javaProj.getProject().hasNature( BlackBerryProjectCoreNature.NATURE_ID ) ) {
return new BlackBerryProject( javaProj );
}
}
} catch( CoreException e ) {
_log.error( "getAdapter: ", e );
}
return null;
}
public Class[] getAdapterList() {
return new Class[] { IProject.class, IJavaProject.class };
}
}