package edu.toronto.cs.xcurator.cli.config;
import edu.toronto.cs.xcurator.common.RdfUriConfig;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.PropertiesConfiguration;
public class RunConfig implements RdfUriConfig {
private Configuration config;
// From setting file
final String resourceUriBase;
final String typeResourceUriBase;
final String typeResourcePrefix;
final String propertyResourceUriBase;
final String propertyResourcePrefix;
// From run time setting
String domain;
String tdbDirectory;
public RunConfig(String domain) throws Exception {
config = new PropertiesConfiguration("setting.properties");
// We have to check if this domain is a valid uri before initializing
// the config
this.domain = domain.endsWith("/")
? domain.substring(0, domain.length() - 1)
: domain;
resourceUriBase = this.domain + config.getString("rdf.uribase", "/resource");
String typeUriBase = config.getString("rdf.type.uribase",
"/resource/class");
String propertyUriBase = config.getString("rdf.property.uribase",
"/resource/property");
if (typeUriBase.endsWith("/") || propertyUriBase.endsWith("/")) {
throw new Exception("Do not add \"/\" at the end of URI base.");
}
typeResourceUriBase = this.domain + typeUriBase;
typeResourcePrefix = config.getString("rdf.type.prefix",
"class");
propertyResourceUriBase = this.domain + propertyUriBase;
propertyResourcePrefix = config.getString("rdf.property.prefix",
"property");
}
@Override
public String getResourceUriBase() {
return resourceUriBase;
}
@Override
public String getTypeResourceUriBase() {
return typeResourceUriBase;
}
@Override
public String getPropertyResourceUriBase() {
return propertyResourceUriBase;
}
@Override
public String getTypeResourcePrefix() {
return typeResourcePrefix;
}
@Override
public String getPropertyResourcePrefix() {
return propertyResourcePrefix;
}
}