aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-06-29 20:13:37 +0000
committerArne Juul <arnej@verizonmedia.com>2021-06-30 10:29:38 +0000
commitfe0cf2b20c61685f18c60af44083b10868db0e15 (patch)
tree638086d10bd49d52f60e56ac071573a17fcee3ef
parent49833295b149f33c97961a56a689b00efc76f24b (diff)
String.format -> Text.format
* needs its own copy of Text.format * various %f formatting must be with English decimal separator
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/Aggregator.java2
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/EndQuery.java4
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/Field.java18
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/FixedQuery.java6
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/Group.java2
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/GroupOperation.java4
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/NonEmpty.java2
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/Text.java15
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/UserInput.java4
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/Wand.java4
-rw-r--r--client/src/main/java/ai/vespa/client/dsl/WeakAnd.java4
11 files changed, 40 insertions, 25 deletions
diff --git a/client/src/main/java/ai/vespa/client/dsl/Aggregator.java b/client/src/main/java/ai/vespa/client/dsl/Aggregator.java
index c746eca0ac5..58285184a61 100644
--- a/client/src/main/java/ai/vespa/client/dsl/Aggregator.java
+++ b/client/src/main/java/ai/vespa/client/dsl/Aggregator.java
@@ -17,6 +17,6 @@ public class Aggregator {
@Override
public String toString() {
- return String.format("%s(%s)", type, value);
+ return Text.format("%s(%s)", type, value);
}
}
diff --git a/client/src/main/java/ai/vespa/client/dsl/EndQuery.java b/client/src/main/java/ai/vespa/client/dsl/EndQuery.java
index d07d3536563..a0de9cf4081 100644
--- a/client/src/main/java/ai/vespa/client/dsl/EndQuery.java
+++ b/client/src/main/java/ai/vespa/client/dsl/EndQuery.java
@@ -163,8 +163,8 @@ public class EndQuery {
public String toString() {
StringBuilder sb = new StringBuilder();
String orderStr = order.stream().map(array -> A.empty().equals(array[0])
- ? String.format("%s %s", array[1], array[2])
- : String.format("[%s]%s %s", array[0], array[1], array[2]))
+ ? Text.format("%s %s", array[1], array[2])
+ : Text.format("[%s]%s %s", array[0], array[1], array[2]))
.collect(Collectors.joining(", "));
String others = map.entrySet().stream()
diff --git a/client/src/main/java/ai/vespa/client/dsl/Field.java b/client/src/main/java/ai/vespa/client/dsl/Field.java
index cc30b8aaded..12c9def4e08 100644
--- a/client/src/main/java/ai/vespa/client/dsl/Field.java
+++ b/client/src/main/java/ai/vespa/client/dsl/Field.java
@@ -613,8 +613,8 @@ public class Field extends QueryChain {
.collect(Collectors.joining(", "));
return hasAnnotation
- ? String.format("([%s]range(%s, %s))", annotation, fieldName, valuesStr)
- : String.format("range(%s, %s)", fieldName, valuesStr);
+ ? Text.format("([%s]range(%s, %s))", annotation, fieldName, valuesStr)
+ : Text.format("range(%s, %s)", fieldName, valuesStr);
case "near":
case "onear":
case "phrase":
@@ -622,23 +622,23 @@ public class Field extends QueryChain {
case "uri":
valuesStr = values.stream().map(Object::toString).collect(Collectors.joining(", "));
return hasAnnotation
- ? String.format("%s contains ([%s]%s(%s))", fieldName, annotation, relation, valuesStr)
- : String.format("%s contains %s(%s)", fieldName, relation, valuesStr);
+ ? Text.format("%s contains ([%s]%s(%s))", fieldName, annotation, relation, valuesStr)
+ : Text.format("%s contains %s(%s)", fieldName, relation, valuesStr);
case "sameElement":
- return String.format("%s contains %s(%s)", fieldName, relation,
+ return Text.format("%s contains %s(%s)", fieldName, relation,
((Query) values.get(0)).toCommaSeparatedAndQueries());
case "nearestNeighbor":
valuesStr = values.stream().map(i -> (String) i).collect(Collectors.joining(", "));
return hasAnnotation
- ? String.format("([%s]nearestNeighbor(%s, %s))", annotation, fieldName, valuesStr)
- : String.format("nearestNeighbor(%s, %s)", fieldName, valuesStr);
+ ? Text.format("([%s]nearestNeighbor(%s, %s))", annotation, fieldName, valuesStr)
+ : Text.format("nearestNeighbor(%s, %s)", fieldName, valuesStr);
default:
Object value = values.get(0);
valuesStr = value instanceof Long ? value.toString() + "L" : value.toString();
return hasAnnotation
- ? String.format("%s %s ([%s]%s)", fieldName, relation, annotation, valuesStr)
- : String.format("%s %s %s", fieldName, relation, valuesStr);
+ ? Text.format("%s %s ([%s]%s)", fieldName, relation, annotation, valuesStr)
+ : Text.format("%s %s %s", fieldName, relation, valuesStr);
}
}
diff --git a/client/src/main/java/ai/vespa/client/dsl/FixedQuery.java b/client/src/main/java/ai/vespa/client/dsl/FixedQuery.java
index 9bab35c44bc..3aab9406a4d 100644
--- a/client/src/main/java/ai/vespa/client/dsl/FixedQuery.java
+++ b/client/src/main/java/ai/vespa/client/dsl/FixedQuery.java
@@ -236,10 +236,10 @@ public class FixedQuery {
double absLat = Math.abs(lat);
double absLon = Math.abs(lon);
if (absLat > 90 || absLon > 180) {
- throw new IllegalArgumentException(String.format("invalid lat long value, lat=%f, long=%f", lat, lon));
+ throw new IllegalArgumentException(Text.format("invalid lat long value, lat=%f, long=%f", lat, lon));
}
- return String.format("%s%f;%s%f",
+ return Text.format("%s%f;%s%f",
lat > 0 ? "N" : "S", absLat,
lon > 0 ? "E" : "W", absLon);
}
@@ -260,7 +260,7 @@ public class FixedQuery {
}
public FixedQuery posBoundingBox(double n, double s, double e, double w) {
- this.param("pos.bb", String.format("n=%f,s=%f,e=%f,w=%f", n, s, e, w));
+ this.param("pos.bb", Text.format("n=%f,s=%f,e=%f,w=%f", n, s, e, w));
return this;
}
diff --git a/client/src/main/java/ai/vespa/client/dsl/Group.java b/client/src/main/java/ai/vespa/client/dsl/Group.java
index 63e3d6d4410..adb848f68e8 100644
--- a/client/src/main/java/ai/vespa/client/dsl/Group.java
+++ b/client/src/main/java/ai/vespa/client/dsl/Group.java
@@ -17,7 +17,7 @@ public class Group implements IGroup, IGroupOperation {
@Override
public String toString() {
- return String.format("%s(%s)",
+ return Text.format("%s(%s)",
type,
Stream.of(operations).map(Objects::toString).collect(Collectors.joining(" ")));
}
diff --git a/client/src/main/java/ai/vespa/client/dsl/GroupOperation.java b/client/src/main/java/ai/vespa/client/dsl/GroupOperation.java
index efd01ebcdec..ef0df3161ac 100644
--- a/client/src/main/java/ai/vespa/client/dsl/GroupOperation.java
+++ b/client/src/main/java/ai/vespa/client/dsl/GroupOperation.java
@@ -24,10 +24,10 @@ public class GroupOperation implements IGroupOperation {
@Override
public String toString() {
if (value != null) {
- return String.format("%s(%s)", type, value);
+ return Text.format("%s(%s)", type, value);
}
- return String.format("%s(%s)",
+ return Text.format("%s(%s)",
type,
Stream.of(aggregators).map(Objects::toString).collect(Collectors.joining(" ")));
}
diff --git a/client/src/main/java/ai/vespa/client/dsl/NonEmpty.java b/client/src/main/java/ai/vespa/client/dsl/NonEmpty.java
index ea1c860cb25..f62e7b2e91b 100644
--- a/client/src/main/java/ai/vespa/client/dsl/NonEmpty.java
+++ b/client/src/main/java/ai/vespa/client/dsl/NonEmpty.java
@@ -17,7 +17,7 @@ public class NonEmpty extends QueryChain {
@Override
public String toString() {
- return String.format("nonEmpty(%s)", query);
+ return Text.format("nonEmpty(%s)", query);
}
@Override
diff --git a/client/src/main/java/ai/vespa/client/dsl/Text.java b/client/src/main/java/ai/vespa/client/dsl/Text.java
new file mode 100644
index 00000000000..98138e5e61a
--- /dev/null
+++ b/client/src/main/java/ai/vespa/client/dsl/Text.java
@@ -0,0 +1,15 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+package ai.vespa.client.dsl;
+
+import java.util.Locale;
+
+/**
+ * Text utility functions.
+ * @author arnej
+ **/
+final class Text {
+ public static String format(String format, Object... args) {
+ return String.format(Locale.US, format, args);
+ }
+}
diff --git a/client/src/main/java/ai/vespa/client/dsl/UserInput.java b/client/src/main/java/ai/vespa/client/dsl/UserInput.java
index 8c9247d17f7..36cd0e47868 100644
--- a/client/src/main/java/ai/vespa/client/dsl/UserInput.java
+++ b/client/src/main/java/ai/vespa/client/dsl/UserInput.java
@@ -49,8 +49,8 @@ public class UserInput extends QueryChain {
public String toString() {
//([{"defaultIndex": "shpdescfree"}](userInput(@_shpdescfree_1)))
return setDefaultIndex
- ? String.format("([%s]userInput(@%s))", annotation, placeholder)
- : String.format("userInput(@%s)", placeholder);
+ ? Text.format("([%s]userInput(@%s))", annotation, placeholder)
+ : Text.format("userInput(@%s)", placeholder);
}
diff --git a/client/src/main/java/ai/vespa/client/dsl/Wand.java b/client/src/main/java/ai/vespa/client/dsl/Wand.java
index 597a7985ec4..9c0d0b4318a 100644
--- a/client/src/main/java/ai/vespa/client/dsl/Wand.java
+++ b/client/src/main/java/ai/vespa/client/dsl/Wand.java
@@ -65,7 +65,7 @@ public class Wand extends QueryChain {
@Override
public String toString() {
boolean hasAnnotation = A.hasAnnotation(annotation);
- String s = String.format("wand(%s, %s)", fieldName, Q.gson.toJson(value));
- return hasAnnotation ? String.format("([%s]%s)", annotation, s) : s;
+ String s = Text.format("wand(%s, %s)", fieldName, Q.gson.toJson(value));
+ return hasAnnotation ? Text.format("([%s]%s)", annotation, s) : s;
}
}
diff --git a/client/src/main/java/ai/vespa/client/dsl/WeakAnd.java b/client/src/main/java/ai/vespa/client/dsl/WeakAnd.java
index a13eafc58e8..3059e4adea1 100644
--- a/client/src/main/java/ai/vespa/client/dsl/WeakAnd.java
+++ b/client/src/main/java/ai/vespa/client/dsl/WeakAnd.java
@@ -55,9 +55,9 @@ public class WeakAnd extends QueryChain {
boolean hasAnnotation = A.hasAnnotation(annotation);
String
s =
- String.format("weakAnd(%s, %s)", fieldName,
+ Text.format("weakAnd(%s, %s)", fieldName,
value.queries.stream().map(Object::toString).collect(Collectors.joining(", ")));
- return hasAnnotation ? String.format("([%s]%s)", annotation, s) : s;
+ return hasAnnotation ? Text.format("([%s]%s)", annotation, s) : s;
}
}