ContextAwareRepository.java
/*******************************************************************************
* Copyright (c) 2015 Eclipse RDF4J contributors, Aduna, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*******************************************************************************/
package org.eclipse.rdf4j.repository.contextaware;
import org.eclipse.rdf4j.model.IRI;
import org.eclipse.rdf4j.query.QueryLanguage;
import org.eclipse.rdf4j.repository.Repository;
import org.eclipse.rdf4j.repository.RepositoryException;
import org.eclipse.rdf4j.repository.base.RepositoryWrapper;
/**
* Allows contexts to be specified at the repository level.
*
* @author James Leigh
*/
public class ContextAwareRepository extends RepositoryWrapper {
private static final IRI[] ALL_CONTEXTS = new IRI[0];
private boolean includeInferred = true;
private int maxQueryTime;
private QueryLanguage ql = QueryLanguage.SPARQL;
private String baseURI;
private IRI[] readContexts = ALL_CONTEXTS;
private IRI[] addContexts = ALL_CONTEXTS;
private IRI[] removeContexts = ALL_CONTEXTS;
private IRI[] archiveContexts = ALL_CONTEXTS;
private IRI insertContext = null;
public ContextAwareRepository() {
super();
}
public ContextAwareRepository(Repository delegate) {
super(delegate);
}
public int getMaxQueryTime() {
return maxQueryTime;
}
public void setMaxQueryTime(int maxQueryTime) {
this.maxQueryTime = maxQueryTime;
}
/**
* @see ContextAwareConnection#getAddContexts()
*/
@Deprecated
public IRI[] getAddContexts() {
return addContexts;
}
/**
* @see ContextAwareConnection#getArchiveContexts()
*/
@Deprecated
public IRI[] getArchiveContexts() {
return archiveContexts;
}
/**
* @see ContextAwareConnection#getInsertContext()
*/
public IRI getInsertContext() {
return insertContext;
}
/**
* @see ContextAwareConnection#getQueryLanguage()
*/
public QueryLanguage getQueryLanguage() {
return ql;
}
/**
* @return Returns the default baseURI.
*/
public String getBaseURI() {
return baseURI;
}
/**
* @see ContextAwareConnection#getReadContexts()
*/
public IRI[] getReadContexts() {
return readContexts;
}
/**
* @see ContextAwareConnection#getRemoveContexts()
*/
public IRI[] getRemoveContexts() {
return removeContexts;
}
/**
* @see ContextAwareConnection#isIncludeInferred()
*/
public boolean isIncludeInferred() {
return includeInferred;
}
/**
* @see ContextAwareConnection#setAddContexts(IRI[])
*/
@Deprecated
public void setAddContexts(IRI... addContexts) {
this.addContexts = addContexts;
}
/**
* @see ContextAwareConnection#setArchiveContexts(IRI[])
*/
@Deprecated
public void setArchiveContexts(IRI... archiveContexts) {
this.archiveContexts = archiveContexts;
}
/**
* @see ContextAwareConnection#setInsertContext(IRI)
*/
public void setInsertContext(IRI insertContext) {
this.insertContext = insertContext;
}
/**
* @see ContextAwareConnection#setIncludeInferred(boolean)
*/
public void setIncludeInferred(boolean includeInferred) {
this.includeInferred = includeInferred;
}
/**
* @see ContextAwareConnection#setQueryLanguage(QueryLanguage)
*/
public void setQueryLanguage(QueryLanguage ql) {
this.ql = ql;
}
/**
* @param baseURI The default baseURI to set.
*/
public void setBaseURI(String baseURI) {
this.baseURI = baseURI;
}
/**
* @see ContextAwareConnection#setReadContexts(IRI[])
*/
public void setReadContexts(IRI... readContexts) {
this.readContexts = readContexts;
}
/**
* @see ContextAwareConnection#setRemoveContexts(IRI[])
*/
public void setRemoveContexts(IRI... removeContexts) {
this.removeContexts = removeContexts;
}
@Override
public ContextAwareConnection getConnection() throws RepositoryException {
ContextAwareConnection con = new ContextAwareConnection(this, super.getConnection());
con.setIncludeInferred(isIncludeInferred());
con.setMaxQueryTime(getMaxQueryTime());
con.setQueryLanguage(getQueryLanguage());
con.setBaseURI(getBaseURI());
con.setReadContexts(getReadContexts());
con.setAddContexts(getAddContexts());
con.setRemoveContexts(getRemoveContexts());
con.setArchiveContexts(getArchiveContexts());
con.setInsertContext(getInsertContext());
return con;
}
}