org.firebirdsql.gds.impl.wire.WireGDSFactoryPlugin Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jaybird Show documentation
Show all versions of jaybird Show documentation
JDBC Driver for the Firebird RDBMS
package org.firebirdsql.gds.impl.wire;
import org.firebirdsql.gds.ClassFactory;
import org.firebirdsql.gds.GDS;
import org.firebirdsql.gds.GDSException;
import org.firebirdsql.gds.GDSObjectFactory;
import org.firebirdsql.gds.impl.GDSFactoryPlugin;
public class WireGDSFactoryPlugin implements GDSFactoryPlugin {
private static final String[] TYPE_ALIASES = new String[]{"TYPE4"};
private static final String[] JDBC_PROTOCOLS = new String[]{"jdbc:firebirdsql:java:", "jdbc:firebirdsql:"};
private static AbstractJavaGDSImpl gdsImpl;
public String getPluginName() {
return "Pure Java GDS implementation.";
}
public String getTypeName() {
return AbstractJavaGDSImpl.PURE_JAVA_TYPE_NAME;
}
public String[] getTypeAliases() {
return TYPE_ALIASES;
}
public Class getConnectionClass() {
return ClassFactory.get(ClassFactory.FBConnection);
}
public String[] getSupportedProtocols() {
return JDBC_PROTOCOLS;
}
public GDS getGDS() {
if (gdsImpl == null)
gdsImpl = GDSObjectFactory.createJavaGDSImpl();
return gdsImpl;
}
public String getDatabasePath(String server, Integer port, String path) throws GDSException{
if (server == null)
throw new GDSException("Server name/address is required " +
"for pure Java implementation.");
if (path == null)
throw new GDSException("Database name/path is required.");
StringBuffer sb = new StringBuffer();
sb.append(server);
if (port != null)
sb.append("/").append(port.intValue());
sb.append(":").append(path);
return sb.toString();
}
public String getDatabasePath(String jdbcUrl) throws GDSException {
String[] protocols = getSupportedProtocols();
for (int i = 0; i < protocols.length; i++) {
if (jdbcUrl.startsWith(protocols[i]))
return jdbcUrl.substring(protocols[i].length());
}
throw new IllegalArgumentException("Incorrect JDBC protocol handling: "
+ jdbcUrl);
}
public String getDefaultProtocol() {
return getSupportedProtocols()[0];
}
public int hashCode() {
return getTypeName().hashCode();
}
public boolean equals(Object obj) {
if (obj == this)
return true;
if (!(obj instanceof WireGDSFactoryPlugin))
return false;
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy