QueryResultUtils.java
/*******************************************************************************
* Copyright (c) 2021 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.spring.util;
import java.util.Optional;
import org.eclipse.rdf4j.common.annotation.Experimental;
import org.eclipse.rdf4j.model.IRI;
import org.eclipse.rdf4j.model.Value;
import org.eclipse.rdf4j.query.BindingSet;
import org.eclipse.rdf4j.sparqlbuilder.core.Variable;
/**
* @author Florian Kleedorfer
* @since 4.0.0
*/
@Experimental
public class QueryResultUtils {
public static Optional<Value> getValueOptional(BindingSet resultRow, String varName) {
return Optional.ofNullable(resultRow.getValue(varName));
}
public static Optional<Value> getValueOptional(BindingSet resultRow, Variable var) {
return getValueOptional(resultRow, var.getVarName());
}
public static Value getValueMaybe(BindingSet resultRow, String varName) {
return getValueOptional(resultRow, varName).orElse(null);
}
public static Value getValueMaybe(BindingSet resultRow, Variable var) {
return getValueMaybe(resultRow, var.getVarName());
}
public static Value getValue(BindingSet resultRow, String varName) {
return getValueOptional(resultRow, varName)
.orElseThrow(
() -> new IllegalStateException(
String.format(
"BindingSet does not contain binding for variable %s",
varName)));
}
public static Value getValue(BindingSet resultRow, Variable var) {
return getValue(resultRow, var.getVarName());
}
public static IRI getIRI(BindingSet resultRow, Variable var) {
return TypeMappingUtils.toIRI(getValue(resultRow, var));
}
public static IRI getIRI(BindingSet resultRow, String varName) {
return TypeMappingUtils.toIRI(getValue(resultRow, varName));
}
public static Optional<IRI> getIRIOptional(BindingSet resultRow, String varName) {
return getValueOptional(resultRow, varName).map(TypeMappingUtils::toIRI);
}
public static Optional<IRI> getIRIOptional(BindingSet resultRow, Variable var) {
return getValueOptional(resultRow, var.getVarName()).map(TypeMappingUtils::toIRI);
}
public static IRI getIRIMaybe(BindingSet resultRow, String varName) {
return getIRIOptional(resultRow, varName).orElse(null);
}
public static IRI getIRIMaybe(BindingSet resultRow, Variable var) {
return getIRIMaybe(resultRow, var.getVarName());
}
public static String getString(BindingSet resultRow, Variable var) {
return getValue(resultRow, var).stringValue();
}
public static String getString(BindingSet resultRow, String varName) {
return getValue(resultRow, varName).stringValue();
}
public static Optional<String> getStringOptional(
BindingSet resultRow, Variable var) {
return getValueOptional(resultRow, var).map(Value::stringValue);
}
public static Optional<String> getStringOptional(BindingSet resultRow, String varName) {
return getValueOptional(resultRow, varName).map(Value::stringValue);
}
public static String getStringMaybe(BindingSet resultRow, String varName) {
return getStringOptional(resultRow, varName).orElse(null);
}
public static String getStringMaybe(BindingSet resultRow, Variable var) {
return getStringMaybe(resultRow, var.getVarName());
}
public static Boolean getBoolean(BindingSet resultRow, Variable var) {
return TypeMappingUtils.toBoolean(getValue(resultRow, var));
}
public static Boolean getBoolean(BindingSet resultRow, String varName) {
return TypeMappingUtils.toBoolean(getValue(resultRow, varName));
}
public static Optional<Boolean> getBooleanOptional(
BindingSet resultRow, Variable var) {
return getValueOptional(resultRow, var).map(TypeMappingUtils::toBoolean);
}
public static Optional<Boolean> getBooleanOptional(BindingSet resultRow, String varName) {
return getValueOptional(resultRow, varName).map(TypeMappingUtils::toBoolean);
}
public static Boolean getBooleanMaybe(BindingSet resultRow, String varName) {
return getBooleanOptional(resultRow, varName).orElse(null);
}
public static Boolean getBooleanMaybe(BindingSet resultRow, Variable var) {
return getBooleanMaybe(resultRow, var.getVarName());
}
}