package org.skywalking.apm.plugin.jdbc.connectionurl.parser;
public abstract class AbstractURLParser implements ConnectionURLParser {
protected String url;
public AbstractURLParser(String url) {
this.url = url;
}
/**
* Fetch the index range that database host and port from connection url.
*
* @return index range that database hosts.
*/
protected abstract int[] fetchDatabaseHostsIndexRange();
/**
* Fetch the index range that database name from connection url.
*
* @return index range that database name.
*/
protected abstract int[] fetchDatabaseNameIndexRange();
/**
* Fetch database host(s) from connection url.
*
* @return database host(s).
*/
protected String fetchDatabaseHostsFromURL() {
int[] indexRange = fetchDatabaseHostsIndexRange();
return url.substring(indexRange[0], indexRange[1]);
}
/**
* Fetch database name from connection url.
*
* @return database name.
*/
protected String fetchDatabaseNameFromURL() {
int[] indexRange = fetchDatabaseNameIndexRange();
return url.substring(indexRange[0], indexRange[1]);
}
/**
* Fetch database name from connection url.
*
* @return database name.
*/
protected String fetchDatabaseNameFromURL(int[] indexRange) {
return url.substring(indexRange[0], indexRange[1]);
}
}