/* * 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); } } }