/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.editor.codecompletion.revisited.javaintegration;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.python.pydev.core.IModulesManager;
import org.python.pydev.core.log.Log;
/**
* Creator for modules manager.
*
* @author fabioz
*/
public class JavaProjectModulesManagerCreator {
/**
* Flag indicating whether JDT is supported in this installation.
*/
private static boolean JDTSupported = true;
/**
* This method will check the given project and if it's a java project, will create a project modules manager
* that can be used to get things from it as we need in pydev.
*/
public static IModulesManager createJavaProjectModulesManagerIfPossible(IProject project) {
if (JDTSupported == false) {
return null;
}
try {
if (project.isOpen()) {
IProjectNature nature = project.getNature(JavaCore.NATURE_ID);
if (nature instanceof IJavaProject) {
IJavaProject javaProject = (IJavaProject) nature;
return new JavaProjectModulesManager(javaProject);
}
}
} catch (Throwable e) {
if (JythonModulesManagerUtils.isOptionalJDTClassNotFound(e)) {
//ignore it at this point: we don't have JDT... set the static variable to it and don't even
//try to get to this point again (no need to log it or anything).
JDTSupported = false;
return null;
} else {
Log.log(e);
}
}
return null;
}
}