package org.reldb.rel.v0.storage.relvars.external.jdbc; import org.reldb.rel.v0.storage.relvars.external.Info; import org.reldb.rel.v0.storage.relvars.external.InfoComponent; import org.reldb.rel.v0.storage.relvars.external.InfoComponentOption; public class InfoJDBC extends Info { @Override public String getIdentifier() { return "JDBC"; } @Override public String getDescription() { return "Connection to a specified table in a SQL database."; } @Override public String getConnectionStringDocumentation() { return "Built-in JDBC support is provided for MySQL, MariaDB, PostgreSQL, Oracle and Microsoft SQL Server:\n" + "\tVAR myvar EXTERNAL JDBC \"jdbc:mysql://localhost/database,sqluser,sqluserpw,MyTable\";\n" + "\tVAR myvar EXTERNAL JDBC \"jdbc:mariadb://localhost/database,sqluser,sqluserpw,MyTable\";\n" + "\tVAR myvar EXTERNAL JDBC \"jdbc:postgresql://localhost/database,sqluser,sqluserpw,MyTable\";\n" + "\tVAR myvar EXTERNAL JDBC \"jdbc:oracle:thin:@localhost:1521:database,sqluser,sqluserpw,MyTable\";\n" + "\tVAR myvar EXTERNAL JDBC \"jdbc:sqlserver://localhost:1433;databaseName=database,sqluser,sqluserpw,MyTable\";\n"; } private static class InfoComponentJDBC extends InfoComponent { private String documentation; InfoComponentJDBC(int componentNumber, String documentation) { super(componentNumber); this.documentation = documentation; } @Override public boolean isOptional() { return false; } @Override public boolean isAFile() { return false; } @Override public String[] getAppropriateFileExtension() { return null; } @Override public InfoComponentOption[] getOptions() { return null; } @Override public String getDocumentation() { return documentation; } } @Override public InfoComponent[] getConnectionStringComponents() { return new InfoComponent[] { new InfoComponentJDBC(0, "JDBC connection string"), new InfoComponentJDBC(1, "SQL user name"), new InfoComponentJDBC(2, "SQL password"), new InfoComponentJDBC(3, "SQL table name") }; } @Override public boolean isGuaranteedUnique() { return false; } }