throws StoreConfigException
{
super.parse(model, implNode);
try {
Literal jdbcDriverLit = model.filter(implNode, JDBC_DRIVER, null).objectLiteral();
if (jdbcDriverLit != null) {
setJdbcDriver(jdbcDriverLit.getLabel());
}
String template = model.filter(implNode, URL_TEMPLATE, null).objectString();
String host = model.filter(implNode, HOST, null).objectString();
String port = model.filter(implNode, PORT, null).objectString();
String database = model.filter(implNode, DATABASE, null).objectString();
String properties = model.filter(implNode, URL_PROPERTIES, null).objectString();
if (template != null && database != null) {
setUrl(format(template, host, port, database, properties));
}
Literal urlLit = model.filter(implNode, URL, null).objectLiteral();
if (urlLit != null) {
setUrl(urlLit.getLabel());
}
Literal userLit = model.filter(implNode, USER, null).objectLiteral();
if (userLit != null) {
setUser(userLit.getLabel());
}
Literal passwordLit = model.filter(implNode, PASSWORD, null).objectLiteral();
if (passwordLit != null) {
setPassword(passwordLit.getLabel());
}
Literal maxTripleTablesLit = model.filter(implNode, MAX_TRIPLE_TABLES, null).objectLiteral();
if (maxTripleTablesLit != null) {
try {
setMaxTripleTables(maxTripleTablesLit.intValue());
}
catch (NumberFormatException e) {
throw new StoreConfigException("Invalid value for maxTripleTables: " + maxTripleTablesLit);
}
}