package cbcdownloader; import java.io.File; public abstract class Downloader { public static final String PROJECT_DIRECTORY = "/mnt/user/code"; public abstract boolean setup(DownloadConfiguration config); public abstract void connect() throws CommunicationException; public abstract void disconnect(); public abstract boolean download(String destination, File file) throws CommunicationException; public abstract boolean supportsExecution(); public abstract String execute(String exec) throws CommunicationException; public abstract boolean supportsDeletion(); public abstract boolean delete(String destination) throws CommunicationException; public abstract DownloadConfiguration getConfigurationObject(); public String[] getProgramList() throws CommunicationException { if(!supportsExecution()) { return null; } return execute("ls -1 " + PROJECT_DIRECTORY).split("\n"); } public boolean supportsProgramList() { return supportsExecution(); } }