/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.datatools.connectivity;
/**
*
*
* @since 8.0
*/
public class TeiidServerJDBCURL {
private static final String PROTOCOL_SSL_TRUE_TEXT = "mms"; //$NON-NLS-1$
private String node = ""; //$NON-NLS-1$
private String port = ""; //$NON-NLS-1$
private String vdbName = ""; //$NON-NLS-1$
private String properties = ""; //$NON-NLS-1$
private boolean isSecureProtocol;
/**
* @param url
*/
public TeiidServerJDBCURL( String url ) {
if (url != null) {
parseURL(url);
}
}
/**
* @return Returns the databaseName.
*/
public String getDatabaseName() {
return vdbName;
}
/**
* @return Returns the node.
*/
public String getNode() {
return node;
}
private void parseURL( String url ) {
// jdbc:teiid:<vdb-name>@mm[s]://<host>:<port>;[prop-name=prop-value;]*
try {
String remainingURL = url.substring(url.indexOf(':') + 1);
remainingURL = remainingURL.substring(url.indexOf(':') + 2);
this.vdbName = remainingURL.substring(0, remainingURL.indexOf('@'));
remainingURL = remainingURL.substring(remainingURL.indexOf('@') + 1);
String protocol = remainingURL.substring(0, remainingURL.indexOf(':'));
isSecureProtocol = protocol.equalsIgnoreCase(PROTOCOL_SSL_TRUE_TEXT);
remainingURL = remainingURL.substring(remainingURL.indexOf(':') + 3);
this.node = remainingURL.substring(0, remainingURL.indexOf(':'));
remainingURL = remainingURL.substring(remainingURL.indexOf(':') + 1);
if (remainingURL.indexOf(';') > -1) {
// there are connection properties
// TODO: how do we want to handle these? As checkboxes or test fields?
this.port = remainingURL.substring(0, remainingURL.indexOf(';'));
remainingURL = remainingURL.substring(remainingURL.indexOf(';') + 1);
this.properties = remainingURL;
} else {
this.port = remainingURL;
}
} catch (Exception e) {
}
}
/**
* @return Returns the port.
*/
public String getPort() {
return port;
}
/**
* @return Returns the properties.
*/
public String getProperties() {
return properties;
}
public boolean isSecureProtocol() {
return isSecureProtocol;
}
}