diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2018-08-17 16:25:12 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2018-08-21 09:26:44 -0700 |
commit | 2ff1ac309727a5f34cfa9472dc5802d5b5c3113c (patch) | |
tree | 14cafb88bc86c6f1d7a257129c2878f2c702bce8 /platform/android/src/style/conversion/url_or_tileset.cpp | |
parent | 7ce6af3f55d94e5e271aeafff44a11508b79dead (diff) | |
download | qtlocation-mapboxgl-2ff1ac309727a5f34cfa9472dc5802d5b5c3113c.tar.gz |
[android] Move conversion code to .cpp files
Diffstat (limited to 'platform/android/src/style/conversion/url_or_tileset.cpp')
-rw-r--r-- | platform/android/src/style/conversion/url_or_tileset.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/platform/android/src/style/conversion/url_or_tileset.cpp b/platform/android/src/style/conversion/url_or_tileset.cpp new file mode 100644 index 0000000000..2ec5856751 --- /dev/null +++ b/platform/android/src/style/conversion/url_or_tileset.cpp @@ -0,0 +1,30 @@ +#include "url_or_tileset.hpp" +#include "../android_conversion.hpp" + +#include <mbgl/style/conversion.hpp> +#include <mbgl/style/conversion/tileset.hpp> + +namespace mbgl { +namespace android { + +// This conversion is expected not to fail because it's used only in contexts where +// the value was originally a String or TileSet object on the Java side. If it fails +// to convert, it's a bug in our serialization or Java-side static typing. +variant<std::string, Tileset> convertURLOrTileset(mbgl::android::Value&& value) { + using namespace mbgl::style::conversion; + + const Convertible convertible(std::move(value)); + if (isObject(convertible)) { + Error error; + optional<Tileset> tileset = convert<Tileset>(convertible, error); + if (!tileset) { + throw std::logic_error(error.message); + } + return { *tileset }; + } else { + return { *toString(convertible) }; + } +} + +} +} |