package org.reldb.rel.client.connection.stream; import java.io.*; import org.reldb.rel.client.connection.CrashHandler; import org.reldb.rel.client.utilities.ClassPathHack; import org.reldb.rel.exceptions.DatabaseFormatVersionException; import org.reldb.rel.Rel; public class ClientLocalConnection extends ClientConnection { private Rel rel; protected CrashHandler errorHandler; /** Establish a connection with a server. */ public ClientLocalConnection(String databaseDir, boolean createDbAllowed, CrashHandler errorHandler, String[] additionalJars) throws IOException, DatabaseFormatVersionException { ClassPathHack.addFile("lib/RelDBMS.jar"); rel = new Rel(databaseDir, createDbAllowed, additionalJars); this.errorHandler = errorHandler; obtainInitialServerResponse(); errorHandler.setInitialServerResponse(initialServerResponse.toString()); } public InputStream getServerResponseInputStream() throws IOException { return rel.getServerResponseInputStream(); } public void sendEvaluate(String source) { try { rel.sendEvaluate(source); } catch (Throwable t) { rel.reset(); errorHandler.process(t, source); } } public void sendExecute(String source) { try { rel.sendExecute(source); } catch (Throwable t) { rel.reset(); errorHandler.process(t, source); } } public void close() throws IOException { rel.close(); } public void reset() throws IOException { rel.reset(); } public static void convertToLatestFormat(String dbURL, PrintStream conversionOutput, String[] additionalJars) throws DatabaseFormatVersionException, IOException { Rel.convertToLatestFormat(dbURL, conversionOutput, additionalJars); } }