Github user ajs6f commented on a diff in the pull request:
https://github.com/apache/jena/pull/449#discussion_r205813451
--- Diff:
jena-arq/src/main/java/org/apache/jena/query/ParameterizedSparqlString.java ---
@@ -1734,4 +1740,243 @@ public String toString() {
}
}
+
+ /**
+ * Assign a varName with a multiple items and whether to include
+ * parenthesis.
+ *
+ * @param varName
+ * @param items
+ * @param isParenthesisNeeded
+ */
+ public void setValues(String varName, Collection<? extends RDFNode>
items, boolean isParenthesisNeeded) {
+ this.valuesReplacements.put(varName, new ValueReplacement(varName,
items, isParenthesisNeeded));
+ }
+
+ /**
+ * Assign a varName with a multiple items.<br>
+ * Can be used to assign multiple values to a single variable or single
+ * value to multiple variables (if using a List) in the SPARQL
query.<br>
+ * See setGroupedValues to assign multiple values to multiple
variables.
+ *
+ * @param varName
+ * @param items
+ */
+ public void setValues(String varName, Collection<? extends RDFNode>
items) {
+ setValues(varName, items, false);
+ }
+
+ /**
+ * Assign a varName with a single item and whether to include
parenthesis.
+ *
+ * @param varName
+ * @param item
+ * @param isParenthesisNeeded
+ */
+ public void setValues(String varName, RDFNode item, boolean
isParenthesisNeeded) {
+ setValues(varName, Arrays.asList(item), isParenthesisNeeded);
+ }
+
+ /**
+ * Assign a varName with a single item.
+ *
+ * @param varName
+ * @param item
+ */
+ public void setValues(String varName, RDFNode item) {
+ setValues(varName, Arrays.asList(item), false);
+ }
+
+ /**
+ * Sets a map of varNames and their items.
+ *
+ * @param valuesItems
+ */
+ public void setValues(Map<String, Collection<? extends RDFNode>>
valuesItems) {
+ for (String varName : valuesItems.keySet()) {
+ Collection<? extends RDFNode> items = valuesItems.get(varName);
+ setValues(varName, items);
+ }
+ }
+
+ /**
+ * All varNames in the map will use the same approach to parenthesis.
+ *
+ * @param valuesItems
+ * @param isParenthesisNeeded
+ */
+ public void setValues(Map<String, Collection<? extends RDFNode>>
valuesItems, Boolean isParenthesisNeeded) {
+ for (String varName : valuesItems.keySet()) {
+ Collection<? extends RDFNode> items = valuesItems.get(varName);
+ setValues(varName, items, isParenthesisNeeded);
--- End diff --
Similarly, `valuesItems.forEach((varName, item)->setValues(varName, items,
isParenthesisNeeded))`, and the same below.
---