/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.openmole.misc.pluginmanager;
import java.io.File;
import java.io.FileFilter;
import java.util.Collection;
import org.osgi.framework.Bundle;
import org.openmole.misc.exception.InternalProcessingError;
/**
*
* @author reuillon
*/
public interface IPluginManager {
Bundle load(File path) throws InternalProcessingError;
Bundle load(String path) throws InternalProcessingError;
Collection<Bundle> loadDir(String path) throws InternalProcessingError;
Collection<Bundle> loadDir(File path) throws InternalProcessingError;
Collection<Bundle> loadDir(File path, String pattern) throws InternalProcessingError;
Collection<Bundle> loadDir(File path, FileFilter filter) throws InternalProcessingError;
Bundle getBundle(File path) throws InternalProcessingError;
void unload(File path) throws InternalProcessingError;
void unload(String path) throws InternalProcessingError;
boolean isClassProvidedByAPlugin(Class c);
File getPluginForClass(Class c);
Iterable<File> getPluginAndDependanciesForClass(Class c);
}