toad_jni/java/lang/
system.rs1use java::io::PrintStream;
2
3use crate::java::{self, Nullable};
4
5#[derive(Debug, Clone, Copy)]
7pub struct System;
8
9impl System {
10 pub fn get_env(e: &mut java::Env, key: impl ToString) -> Option<String> {
12 static GETENV: java::StaticMethod<System, fn(String) -> Nullable<String>> =
13 java::StaticMethod::new("getenv");
14 GETENV.invoke(e, key.to_string()).into_option(e)
15 }
16
17 pub fn get_property(e: &mut java::Env, key: impl ToString) -> Option<String> {
19 static GET_PROPERTY: java::StaticMethod<System, fn(String) -> Nullable<String>> =
20 java::StaticMethod::new("getProperty");
21 GET_PROPERTY.invoke(e, key.to_string()).into_option(e)
22 }
23
24 pub fn set_property(e: &mut java::Env,
28 key: impl ToString,
29 value: impl ToString)
30 -> Option<String> {
31 static SET_PROPERTY: java::StaticMethod<System, fn(String, String) -> Nullable<String>> =
32 java::StaticMethod::new("setProperty");
33 SET_PROPERTY.invoke(e, key.to_string(), value.to_string())
34 .into_option(e)
35 }
36
37 pub fn gc(e: &mut java::Env) {
39 static GC: java::StaticMethod<System, fn()> = java::StaticMethod::new("gc");
40 GC.invoke(e)
41 }
42
43 pub fn load_library_file(e: &mut java::Env, filename: impl ToString) {
45 static LOAD: java::StaticMethod<System, fn(String)> = java::StaticMethod::new("load");
46 LOAD.invoke(e, filename.to_string())
47 }
48
49 pub fn load_library(e: &mut java::Env, libname: impl ToString) {
51 static LOAD_LIBRARY: java::StaticMethod<System, fn(String)> =
52 java::StaticMethod::new("loadLibrary");
53 LOAD_LIBRARY.invoke(e, libname.to_string())
54 }
55
56 pub fn console(e: &mut java::Env) -> Nullable<java::io::Console> {
58 static CONSOLE: java::StaticMethod<System, fn() -> Nullable<java::io::Console>> =
59 java::StaticMethod::new("console");
60 CONSOLE.invoke(e)
61 }
62
63 pub fn exit(e: &mut java::Env, status: i32) {
65 static EXIT: java::StaticMethod<System, fn(i32)> = java::StaticMethod::new("exit");
66 EXIT.invoke(e, status)
67 }
68
69 pub fn out(e: &mut java::Env) -> PrintStream {
71 static OUT: java::StaticField<System, PrintStream> = java::StaticField::new("out");
72 OUT.get(e)
73 }
74
75 pub fn err(e: &mut java::Env) -> PrintStream {
77 static ERR: java::StaticField<System, PrintStream> = java::StaticField::new("err");
78 ERR.get(e)
79 }
80}
81
82impl java::Class for System {
83 const PATH: &'static str = "java/lang/System";
84}
85
86impl java::Object for System {
87 fn upcast(_: &mut java::Env, _: java::lang::Object) -> Self {
88 panic!("java.lang.System cannot be instantiated.")
89 }
90
91 fn downcast(self, _: &mut java::Env) -> java::lang::Object {
92 panic!("java.lang.System cannot be instantiated.")
93 }
94
95 fn downcast_ref(&self, _: &mut java::Env) -> java::lang::Object {
96 panic!("java.lang.System cannot be instantiated.")
97 }
98}