All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bigdata.rdf.sail.remote.AbstractBigdataRemoteQuery Maven / Gradle / Ivy

package com.bigdata.rdf.sail.remote;

import org.openrdf.model.URI;
import org.openrdf.query.Binding;
import org.openrdf.query.impl.AbstractQuery;

import com.bigdata.rdf.sail.webapp.client.EncodeDecodeValue;
import com.bigdata.rdf.sail.webapp.client.IPreparedQuery;
import com.bigdata.rdf.sail.webapp.client.RemoteRepositoryDecls;

public abstract class AbstractBigdataRemoteQuery extends AbstractQuery {

	
	private String baseURI;

	public AbstractBigdataRemoteQuery(String baseURI) {
		super();
		this.baseURI = baseURI;
	}

	/**
	 * @see org.openrdf.http.client.HTTPClient#getQueryMethodParameters(QueryLanguage, String, String, Dataset, boolean, int, Binding...)
	 */
	protected void configureConnectOptions(IPreparedQuery q) {
		if (baseURI != null) {
			q.addRequestParam(RemoteRepositoryDecls.BASE_URI, baseURI);
		}
		q.addRequestParam(RemoteRepositoryDecls.INCLUDE_INFERRED,
				Boolean.toString(includeInferred));
		if (maxQueryTime > 0) {
			q.addRequestParam(RemoteRepositoryDecls.MAX_QUERY_TIME_MILLIS, Long.toString(1000L*maxQueryTime));
		}

		if (dataset != null) {
			String[] defaultGraphs = new String[dataset.getDefaultGraphs().size()];
			int i=0;
			for (URI defaultGraphURI : dataset.getDefaultGraphs()) {
				defaultGraphs[i++] = String.valueOf(defaultGraphURI);
			}

			q.addRequestParam(q.isUpdate() ? RemoteRepositoryDecls.USING_GRAPH_URI
					: RemoteRepositoryDecls.DEFAULT_GRAPH_URI, defaultGraphs);
			
			String[] namedGraphs = new String[dataset.getNamedGraphs().size()];
			i=0;
			for (URI namedGraphURI : dataset.getNamedGraphs()) {
				namedGraphs[i++] = String.valueOf(String.valueOf(namedGraphURI));
			}
			q.addRequestParam(q.isUpdate() ? RemoteRepositoryDecls.USING_NAMED_GRAPH_URI
					: RemoteRepositoryDecls.NAMED_GRAPH_URI, namedGraphs);
		}
		for (Binding binding: bindings) {
			String paramName = RemoteRepositoryDecls.BINDING_PREFIX + binding.getName();
			String paramValue = EncodeDecodeValue.encodeValue(binding.getValue());
			q.addRequestParam(paramName, paramValue);
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy