8 template <
class >
struct Boxer;
11 template <
class Unboxed >
12 decltype(
auto)
Box(JNIEnv& env, Unboxed&& unboxed)
18 decltype(
auto)
Unbox(JNIEnv& env, const T& boxed)
27 static constexpr
auto Name() {
return "java/lang/Boolean"; }
35 static constexpr
auto Name() {
return "java/lang/Character"; }
43 static constexpr
auto Name() {
return "java/lang/Number"; }
49 static constexpr
auto Name() {
return "java/lang/Byte"; }
57 static constexpr
auto Name() {
return "java/lang/Short"; }
65 static constexpr
auto Name() {
return "java/lang/Integer"; }
73 static constexpr
auto Name() {
return "java/lang/Long"; }
81 static constexpr
auto Name() {
return "java/lang/Float"; }
89 static constexpr
auto Name() {
return "java/lang/Double"; }
106 template <
class Tag,
class Unboxed >
112 static auto box = klass.template GetStaticMethod<Object<Tag> (Unboxed)>(env, Tag::BoxStaticMethodName());
113 return klass.Call(env, box, unboxed);
127 template <
class Tag,
class Unboxed >
133 static auto unbox = klass.template GetMethod<Unboxed ()>(env, Tag::UnboxMethodName());
134 return boxed.
Call(env, unbox);
148 template <
class Tag >
154 template <
class Tag >
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:83
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:51
auto Call(JNIEnv &env, const Method< TagType, R(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< IsPrimitive< R >::value &&Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs &>... >::value, R >
Definition: object.hpp:96
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:58
static constexpr auto Name()
Definition: boxing.hpp:73
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:90
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:36
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:29
const Object< Tag > & Unbox(JNIEnv &, const jni::Object< Tag > &o) const
Definition: boxing.hpp:157
static constexpr auto Name()
Definition: boxing.hpp:89
static constexpr auto Name()
Definition: boxing.hpp:65
const Object< Tag > & Box(JNIEnv &, const jni::Object< Tag > &o) const
Definition: boxing.hpp:151
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:37
static constexpr auto Name()
Definition: boxing.hpp:43
Definition: object.hpp:44
static constexpr auto Name()
Definition: boxing.hpp:49
Definition: advanced_ownership.hpp:5
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:59
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:50
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:28
Definition: boxing.hpp:128
decltype(auto) Unbox(JNIEnv &env, const T &boxed)
Definition: boxing.hpp:18
Definition: tagging.hpp:16
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:91
Local< Object< Tag > > Box(JNIEnv &env, Unboxed unboxed) const
Definition: boxing.hpp:109
static const Class & Singleton(JNIEnv &env)
Definition: class.hpp:101
Definition: boxing.hpp:86
Definition: boxing.hpp:54
static constexpr auto Name()
Definition: boxing.hpp:81
Definition: boxing.hpp:70
static constexpr auto Name()
Definition: boxing.hpp:57
Definition: boxing.hpp:78
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:66
Definition: unique.hpp:38
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:75
Unboxed Unbox(JNIEnv &env, const Object< Tag > &boxed) const
Definition: boxing.hpp:130
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:82
Definition: boxing.hpp:40
static constexpr auto Name()
Definition: boxing.hpp:27
Definition: boxing.hpp:24
Definition: boxing.hpp:107
Definition: boxing.hpp:62
static constexpr auto UnboxMethodName()
Definition: boxing.hpp:67
Definition: boxing.hpp:46
decltype(auto) Box(JNIEnv &env, Unboxed &&unboxed)
Definition: boxing.hpp:12
static constexpr auto BoxStaticMethodName()
Definition: boxing.hpp:74
Definition: boxing.hpp:32
static constexpr auto Name()
Definition: boxing.hpp:35