/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 2007.
*
* Licensed under the Aduna BSD-style license.
*/
package org.openrdf.repository.http.config;
import static org.openrdf.repository.http.config.HTTPRepositorySchema.PASSWORD;
import static org.openrdf.repository.http.config.HTTPRepositorySchema.REPOSITORYURL;
import static org.openrdf.repository.http.config.HTTPRepositorySchema.USERNAME;
import org.openrdf.model.Graph;
import org.openrdf.model.Literal;
import org.openrdf.model.Resource;
import org.openrdf.model.URI;
import org.openrdf.model.util.GraphUtil;
import org.openrdf.model.util.GraphUtilException;
import org.openrdf.repository.config.RepositoryConfigException;
import org.openrdf.repository.config.RepositoryImplConfigBase;
/**
* @author Arjohn Kampman
*/
public class HTTPRepositoryConfig extends RepositoryImplConfigBase {
private String url;
private String username;
private String password;
public HTTPRepositoryConfig() {
super(HTTPRepositoryFactory.REPOSITORY_TYPE);
}
public HTTPRepositoryConfig(String url) {
this();
setURL(url);
}
public String getURL() {
return url;
}
public void setURL(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public void validate()
throws RepositoryConfigException
{
super.validate();
if (url == null) {
throw new RepositoryConfigException("No URL specified for HTTP repository");
}
}
@Override
public Resource export(Graph graph) {
Resource implNode = super.export(graph);
if (url != null) {
graph.add(implNode, REPOSITORYURL, graph.getValueFactory().createURI(url));
}
// if (username != null) {
// graph.add(implNode, USERNAME, graph.getValueFactory().createLiteral(username));
// }
// if (password != null) {
// graph.add(implNode, PASSWORD, graph.getValueFactory().createLiteral(password));
// }
return implNode;
}
@Override
public void parse(Graph graph, Resource implNode)
throws RepositoryConfigException
{
super.parse(graph, implNode);
try {
URI uri = GraphUtil.getOptionalObjectURI(graph, implNode, REPOSITORYURL);
if (uri != null) {
setURL(uri.toString());
}
Literal username = GraphUtil.getOptionalObjectLiteral(graph, implNode, USERNAME);
if (username != null) {
setUsername(username.getLabel());
}
Literal password = GraphUtil.getOptionalObjectLiteral(graph, implNode, PASSWORD);
if (password != null) {
setPassword(password.getLabel());
}
}
catch (GraphUtilException e) {
throw new RepositoryConfigException(e.getMessage(), e);
}
}
}