summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2018-01-24 13:36:50 +0100
committerTobrun <tobrun.van.nuland@gmail.com>2018-01-24 13:38:26 +0100
commit1b061feb0e6075183ddf3e28e9e0515ea66b930d (patch)
tree84434e9e84f7e67e38b9d84eeb83c0877415b0b8
parentfb5b8d34f20b696319cfc16838243265143ba972 (diff)
downloadqtlocation-mapboxgl-upstream/tvn-expression-tostring.tar.gz
[android] - add toString to Expression to print out object array notationupstream/tvn-expression-tostring
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java18
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java23
2 files changed, 41 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java
index 4d09fcaac6..abf37cd330 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java
@@ -1758,4 +1758,22 @@ public class Expression<T> {
return output;
}
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("[\"").append(operator).append("\"");
+ if (arguments != null) {
+ for (Expression argument : arguments) {
+ builder.append(", ");
+ if (argument instanceof ExpressionLiteral) {
+ builder.append(((ExpressionLiteral) argument).toValue());
+ } else {
+ builder.append(argument.toString());
+ }
+ }
+ }
+ builder.append("]");
+ return builder.toString();
+ }
} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java
index eb1ce8bfaa..c0b7832727 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java
@@ -76,6 +76,7 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.upcase;
import static com.mapbox.mapboxsdk.style.expressions.Expression.var;
import static com.mapbox.mapboxsdk.style.expressions.Expression.zoom;
import static junit.framework.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
/**
* Expression unit tests that validate the expression output with the expected Object[]array representation.
@@ -1007,4 +1008,26 @@ public class ExpressionTest {
literal(1)), get("x"), stop(0, 100), stop(100, 200)).toArray();
assertTrue("expression should match", Arrays.deepEquals(expected, actual));
}
+
+ @Test
+ public void testExpressionConcatToString() throws Exception {
+ String expected = "[\"concat\", foo, bar]";
+ String actual = concat(literal("foo"), literal("bar")).toString();
+ assertEquals("toString should match", expected, actual);
+ }
+
+ @Test
+ public void testExpressionMinToString() throws Exception {
+ String expected = "[\"min\", 0, 1, 2, 3]";
+ String actual = min(0, 1, 2, 3).toString();
+ assertEquals("toString should match", expected, actual);
+ }
+
+ @Test
+ public void testExpressionExponentialToString() throws Exception {
+ String expected = "[\"interpolate\", [\"cubic-bezier\", 1, 1, 1, 1], [\"get\", x], 0, 100, 100, 200]";
+ String actual = interpolate(cubicBezier(literal(1), literal(1), literal(1), literal(1)),
+ get(literal("x")), literal(0), literal(100), literal(100), literal(200)).toString();
+ assertEquals("toString should match", expected, actual);
+ }
} \ No newline at end of file