1use crate::{errors::*, objects::*, Transform, JVMTIFacadeEnv};
2use jni::strings::JNIString;
3use crate::sys::jint;
4
5impl<'a> JVMTIFacadeEnv<'a> {
6 pub fn get_method_declaring_class_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<JObject>
7 where
8 K: Transform<'a, JClass<'a>>,
9 M: Into<JNIString>,
10 V: Into<JNIString> {
11 self.jvmti_rust().get_method_declaring_class_i(self.jni_rust(), class, name, sig)
12 }
13
14 pub fn get_method_modifiers_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<jint>
15 where
16 K: Transform<'a, JClass<'a>>,
17 M: Into<JNIString>,
18 V: Into<JNIString> {
19 self.jvmti_rust().get_method_modifiers_i(self.jni_rust(), class, name, sig)
20 }
21
22 pub fn get_max_locals_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<jint>
23 where
24 K: Transform<'a, JClass<'a>>,
25 M: Into<JNIString>,
26 V: Into<JNIString> {
27 self.jvmti_rust().get_max_locals_i(self.jni_rust(), class, name, sig)
28 }
29
30 pub fn get_arguments_size_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<jint>
31 where
32 K: Transform<'a, JClass<'a>>,
33 M: Into<JNIString>,
34 V: Into<JNIString> {
35 self.jvmti_rust().get_arguments_size_i(self.jni_rust(), class, name, sig)
36 }
37
38 pub fn get_line_number_table_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<Vec<JLineNumberEntry>>
39 where
40 K: Transform<'a, JClass<'a>>,
41 M: Into<JNIString>,
42 V: Into<JNIString> {
43 self.jvmti_rust().get_line_number_table_i(self.jni_rust(), class, name, sig)
44 }
45
46 pub fn get_method_location_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<JMethodLocation>
47 where
48 K: Transform<'a, JClass<'a>>,
49 M: Into<JNIString>,
50 V: Into<JNIString> {
51 self.jvmti_rust().get_method_location_i(self.jni_rust(), class, name, sig)
52 }
53
54 pub fn get_local_variable_table_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<Vec<JLocalVariableEntry>>
55 where
56 K: Transform<'a, JClass<'a>>,
57 M: Into<JNIString>,
58 V: Into<JNIString> {
59 self.jvmti_rust().get_local_variable_table_i(self.jni_rust(), class, name, sig)
60 }
61
62 pub fn get_bytecodes_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<JMemoryAllocate>
63 where
64 K: Transform<'a, JClass<'a>>,
65 M: Into<JNIString>,
66 V: Into<JNIString> {
67 self.jvmti_rust().get_bytecodes_i(self.jni_rust(), class, name, sig)
68 }
69
70 pub fn is_method_native_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<bool>
71 where
72 K: Transform<'a, JClass<'a>>,
73 M: Into<JNIString>,
74 V: Into<JNIString> {
75 self.jvmti_rust().is_method_native_i(self.jni_rust(), class, name, sig)
76 }
77
78 pub fn is_method_synthetic_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<bool>
79 where
80 K: Transform<'a, JClass<'a>>,
81 M: Into<JNIString>,
82 V: Into<JNIString> {
83 self.jvmti_rust().is_method_synthetic_i(self.jni_rust(), class, name, sig)
84 }
85
86 pub fn is_method_obsolete_i<K, M, V>(&self, class: K, name: M, sig: V) -> Result<bool>
87 where
88 K: Transform<'a, JClass<'a>>,
89 M: Into<JNIString>,
90 V: Into<JNIString> {
91 self.jvmti_rust().is_method_obsolete_i(self.jni_rust(), class, name, sig)
92 }
93}