/**
* 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.
*/
/*
* Created on Jan 14, 2006
*/
package org.python.pydev.core;
import java.io.File;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.text.IDocument;
import org.python.pydev.core.callbacks.ICallback0;
public interface IProjectModulesManager extends IModulesManager {
/**
* Set the project this modules manager works with.
*
* @param project the project related to this manager
* @param restoreDeltas says whether deltas should be restored (if they are not, they should be discarded)
*/
public abstract void setProject(IProject project, IPythonNature nature, boolean restoreDeltas);
public abstract void processUpdate(ModulesKey data);
public abstract void processDelete(ModulesKey key);
public abstract void processInsert(ModulesKey key);
public abstract void endProcessing();
public abstract void rebuildModule(File f, ICallback0<IDocument> doc, IProject project, IProgressMonitor monitor,
IPythonNature nature);
public abstract void removeModule(File file, IProject project, IProgressMonitor monitor);
/**
* @return a given module only if it's actually controlled in the given modules manager (not considering any dependencies)
*/
public abstract IModule getModuleInDirectManager(String name, IPythonNature nature, boolean dontSearchInit);
/**
* @return the name of a given module or null if it can't resolve it for this modules manager.
*/
public abstract String resolveModuleInDirectManager(IFile file);
/**
* @return the name of a given module or null if it can't resolve it for this modules manager.
*/
public abstract String resolveModuleInDirectManager(String full);
}