summaryrefslogtreecommitdiff
path: root/platform/android/src/java/util.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/java/util.hpp')
-rw-r--r--platform/android/src/java/util.hpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/platform/android/src/java/util.hpp b/platform/android/src/java/util.hpp
index 1a552c7124..dedb8ac348 100644
--- a/platform/android/src/java/util.hpp
+++ b/platform/android/src/java/util.hpp
@@ -24,6 +24,48 @@ public:
};
+class Set : private mbgl::util::noncopyable {
+public:
+
+ static constexpr auto Name() { return "java/util/Set"; };
+
+ template<class T>
+ static jni::Array<jni::Object<T>> toArray(jni::JNIEnv& env, jni::Object<Set> list) {
+ static auto toArray = Set::javaClass.GetMethod<jni::Array<jni::Object<>> ()>(env, "toArray");
+ return (jni::Array<jni::Object<T>>) list.Call(env, toArray);
+ };
+
+ static jni::Class<Set> javaClass;
+
+};
+
+class Map : private mbgl::util::noncopyable {
+public:
+
+ class Entry : private mbgl::util::noncopyable {
+ public:
+ static constexpr auto Name() { return "java/util/Map$Entry"; };
+
+ template <class T>
+ static jni::Object<T> getKey(jni::JNIEnv& env, jni::Object<Entry> entry) {
+ static auto method = Entry::javaClass.GetMethod<jni::Object<> ()>(env, "getKey");
+ return (jni::Object<T>) entry.Call(env, method);
+ }
+
+ template <class T>
+ static jni::Object<T> getValue(jni::JNIEnv& env, jni::Object<Entry> entry) {
+ static auto method = Entry::javaClass.GetMethod<jni::Object<> ()>(env, "getValue");
+ return (jni::Object<T>) entry.Call(env, method).Get();
+ }
+
+ static jni::Class<Entry> javaClass;
+ };
+
+ static constexpr auto Name() { return "java/util/Map"; };
+
+ static jni::Class<Map> javaClass;
+};
+
void registerNative(jni::JNIEnv&);