Skip to content

Commit 1611b44

Browse files
committed
javaSystemProperty() dedupe
1 parent 015a072 commit 1611b44

File tree

5 files changed

+27
-14
lines changed

5 files changed

+27
-14
lines changed

+stdlib/get_username.m

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22

33
function n = get_username()
44

5-
if stdlib.isoctave()
6-
n = javaMethod("getProperty", "java.lang.System", "user.name");
7-
else
8-
n = string(java.lang.System.getProperty('user.name'));
9-
end
5+
n = javaSystemProperty("user.name");
106

117
end
128

+stdlib/homedir.m

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
use_java (1,1) logical = false
1010
end
1111

12-
if stdlib.isoctave()
13-
h = javaMethod("getProperty", "java.lang.System", "user.home");
14-
elseif use_java
15-
h = java.lang.System.getProperty("user.home");
12+
if use_java
13+
h = javaSystemProperty("user.home");
1614
elseif ispc
1715
h = getenv("USERPROFILE");
1816
else

+stdlib/java_version.m

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@
88

99
function v = java_version()
1010

11-
if stdlib.isoctave()
12-
v = javaMethod("getProperty", "java.lang.System", "java.version");
13-
else
14-
v = string(java.lang.System.getProperty("java.version"));
15-
end
11+
v = javaSystemProperty("java.version");
1612

1713
end
1814

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
function p = javaSystemProperty(k)
2+
3+
try
4+
p = string(java.lang.System.getProperty(k));
5+
catch e
6+
if strcmp(e.identifier, "Octave:undefined-function")
7+
p = javaMethod("getProperty", "java.lang.System", k);
8+
else
9+
rethrow(e);
10+
end
11+
end

example/bench_homedir.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
%% benchmark for exists()
2+
3+
fno = @() stdlib.homedir(false);
4+
fjava = @() stdlib.homedir(true);
5+
6+
t_no = timeit(fno);
7+
t_java = timeit(fjava);
8+
9+
disp("No Java: " + t_no + " s")
10+
disp("Java: " + t_java + " s")
11+
12+
disp("Java is " + t_no/t_java + " times faster")

0 commit comments

Comments
 (0)