org.eclipse.rdf4j.federated.endpoint.ResolvableEndpoint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rdf4j-tools-federation Show documentation
Show all versions of rdf4j-tools-federation Show documentation
A federation engine for virtually integrating SPARQL endpoints
/*******************************************************************************
* Copyright (c) 2019 Eclipse RDF4J contributors.
*
* 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.federated.endpoint;
import org.eclipse.rdf4j.federated.endpoint.provider.RepositoryInformation;
import org.eclipse.rdf4j.federated.exception.FedXRuntimeException;
import org.eclipse.rdf4j.repository.Repository;
import org.eclipse.rdf4j.repository.RepositoryResolver;
/**
* A specialized {@link Endpoint} that allows to resolve the repository using a {@link RepositoryResolver}.
*
* The Repository lifecycle is assumed to be managed externally.
*
*
* @author Andreas Schwarte
*
*/
public class ResolvableEndpoint extends EndpointBase {
protected RepositoryResolver repositoryResolver;
public ResolvableEndpoint(RepositoryInformation repoInfo, String endpoint,
EndpointClassification endpointClassification) {
super(repoInfo, endpoint, endpointClassification);
}
@Override
public Repository getRepository() {
if (repositoryResolver == null) {
throw new IllegalStateException("Repository resolver not defined.");
}
Repository repo = repositoryResolver.getRepository(getId());
if (repo == null) {
throw new FedXRuntimeException("Repository with id " + getId() + " cannot be resolved.");
}
return repo;
}
public void setRepositoryResolver(RepositoryResolver repositoryResolver) {
this.repositoryResolver = repositoryResolver;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy