toad_jni/java/lang/
system.rs

1use java::io::PrintStream;
2
3use crate::java::{self, Nullable};
4
5/// `java.lang.System`
6#[derive(Debug, Clone, Copy)]
7pub struct System;
8
9impl System {
10  /// `String java.lang.System.getenv(String)`
11  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  /// `String java.lang.System.getProperty(String)`
18  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  /// `String java.lang.System.setProperty(String)`
25  ///
26  /// Returns `Some(val)` when there was a previous value.
27  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  /// `java.lang.System.gc()`
38  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  /// `java.lang.System.load(String)`
44  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  /// `java.lang.System.loadLibrary(String)`
50  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  /// `java.lang.System.console()`
57  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  /// `java.lang.System.exit(int)`
64  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  /// `java.lang.System.out`
70  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  /// `java.lang.System.err`
76  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}