package org.reldb.rel;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import org.reldb.rel.exceptions.DatabaseFormatVersionException;
/** Convenient access point for running an embedded or stand-alone interpreter. */
public class Rel {
private org.reldb.rel.v0.engine.Rel rel;
private static boolean classpathBuilt = false;
private static void buildClasspath() throws IOException {
if (classpathBuilt)
return;
ClassPathHack.addFile("lib/commons-cli-1.2.jar");
ClassPathHack.addFile("lib/commons-codec-1.10.jar");
ClassPathHack.addFile("lib/commons-collections4-4.1.jar");
ClassPathHack.addFile("lib/commons-lang-2.6.jar");
ClassPathHack.addFile("lib/commons-logging-1.2.jar");
ClassPathHack.addFile("lib/curvesapi-1.04.jar");
ClassPathHack.addFile("lib/ecj-4.6.1.jar");
ClassPathHack.addFile("lib/fluent-hc-4.5.2.jar");
ClassPathHack.addFile("lib/httpclient-4.5.2.jar");
ClassPathHack.addFile("lib/httpclient-cache-4.5.2.jar");
ClassPathHack.addFile("lib/httpclient-win-4.5.2.jar");
ClassPathHack.addFile("lib/httpcore-4.4.4.jar");
ClassPathHack.addFile("lib/httpcore-4.4.5.jar");
ClassPathHack.addFile("lib/httpcore-ab-4.4.5.jar");
ClassPathHack.addFile("lib/httpcore-nio-4.4.5.jar");
ClassPathHack.addFile("lib/httpmime-4.5.2.jar");
ClassPathHack.addFile("lib/jackcess-2.1.6.jar");
ClassPathHack.addFile("lib/je-7.0.6.jar");
ClassPathHack.addFile("lib/jna-4.1.0.jar");
ClassPathHack.addFile("lib/jna-platform-4.1.0.jar");
ClassPathHack.addFile("lib/junit.jar");
ClassPathHack.addFile("lib/log4j-1.2.17.jar");
ClassPathHack.addFile("lib/mariadb-java-client-1.5.6.jar");
ClassPathHack.addFile("lib/ojdbc7.jar");
ClassPathHack.addFile("lib/poi-3.15.jar");
ClassPathHack.addFile("lib/poi-excelant-3.15.jar");
ClassPathHack.addFile("lib/poi-ooxml-3.15.jar");
ClassPathHack.addFile("lib/poi-ooxml-schemas-3.15.jar");
ClassPathHack.addFile("lib/poi-scratchpad-3.15.jar");
ClassPathHack.addFile("lib/postgresql-9.4.1212.jar");
ClassPathHack.addFile("lib/rel0000.jar");
ClassPathHack.addFile("lib/relclient.jar");
ClassPathHack.addFile("lib/relshared.jar");
ClassPathHack.addFile("lib/jtds-1.3.1.jar");
ClassPathHack.addFile("lib/xmlbeans-2.6.0.jar");
classpathBuilt = true;
}
/** Convenient runner for a stand-alone Rel interpreter.
* @throws IOException */
public static void main(String[] args) throws IOException {
buildClasspath();
org.reldb.rel.v0.engine.Rel.main(args);
}
/** Convert this database to the latest format, if necessary. Throw exception if not necessary. Normally only needed if invoking
* the constructor throws DatabaseFormatVersionException. */
public static void convertToLatestFormat(String databaseDir, PrintStream conversionOutput, String[] additionalJars) throws DatabaseFormatVersionException, IOException {
buildClasspath();
org.reldb.rel.v0.engine.Rel.convertToLatestFormat(databaseDir, conversionOutput, additionalJars);
}
/** Establish a connection with this server. */
public Rel(String databaseDir, boolean createDbAllowed, String[] additionalJars) throws IOException, DatabaseFormatVersionException {
buildClasspath();
rel = new org.reldb.rel.v0.engine.Rel(databaseDir, createDbAllowed, additionalJars);
}
public InputStream getServerResponseInputStream() throws IOException {
return rel.getServerResponseInputStream();
}
public void sendEvaluate(String source) throws Throwable {
rel.sendEvaluate(source);
}
public void sendExecute(String source) throws Throwable {
rel.sendExecute(source);
}
public void reset() {
rel.reset();
}
public void close() {
rel.close();
}
}