/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.pluginmanager;
import java.io.IOException;
import java.io.InputStream;
import freenet.pluginmanager.PluginManager.PluginProgress;
/**
* load a plugin from wherever
* @author saces
*
*/
public abstract class PluginDownLoader<T> {
private T _source;
public String setSource(String source) throws PluginNotFoundException {
this._source = checkSource(source);
return getPluginName(source);
}
public T getSource() {
return _source;
}
abstract InputStream getInputStream(PluginProgress progress) throws IOException, PluginNotFoundException;
abstract T checkSource(String source) throws PluginNotFoundException;
abstract String getPluginName(String source) throws PluginNotFoundException;
abstract String getSHA1sum() throws PluginNotFoundException;
abstract String getSHA256sum() throws PluginNotFoundException;
/** Cancel the load if possible */
abstract void tryCancel();
public boolean isOfficialPluginLoader() {
return false;
}
}