Mercurial Hosting > luan
annotate src/luan/modules/Utils.java @ 1493:471ef3e6a84e
more io
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 03 May 2020 00:12:15 -0600 |
parents | 225808b90cee |
children | 0ba144491a42 |
rev | line source |
---|---|
167
4c0131c2b650
merge luan/lib into modules
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
1 package luan.modules; |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
2 |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
3 import java.io.Reader; |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
4 import java.io.IOException; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
5 import java.io.ByteArrayOutputStream; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
6 import java.io.InputStream; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
7 import java.io.OutputStream; |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
8 import java.io.File; |
713
a21e9594307d
add Process handling to Utils.java
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
9 import java.io.InputStreamReader; |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
10 import java.net.URL; |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
11 import java.net.MalformedURLException; |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
12 import java.util.Map; |
1493 | 13 import goodjava.io.IoUtils; |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
14 import luan.Luan; |
86
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
15 import luan.LuanException; |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
16 import luan.LuanTable; |
582
31926755689e
add Thread.synchronized
Franklin Schmidt <fschmidt@gmail.com>
parents:
578
diff
changeset
|
17 import luan.LuanFunction; |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
18 |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
19 |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
20 public final class Utils { |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
21 private Utils() {} // never |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
22 |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
23 static final int bufSize = 8192; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
24 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
25 private static void checkNotNull(Object v,String expected,int pos) throws LuanException { |
86
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
26 if( v == null ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
27 throw new LuanException("bad argument #"+pos+" ("+expected+" expected, got nil)"); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
28 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
29 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
30 public static void checkNotNull(String s,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
31 checkNotNull(s,"string",pos); |
86
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
32 } |
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
33 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
34 public static void checkNotNull(String s) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
35 checkNotNull(s,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
36 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
37 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
38 public static void checkNotNull(byte[] b,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
39 checkNotNull(b,"binary",pos); |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
40 } |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
41 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
42 public static void checkNotNull(byte[] b) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
43 checkNotNull(b,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
44 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
45 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
46 public static void checkNotNull(LuanTable t,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
47 checkNotNull(t,"table",pos); |
305
5e7450ac27f2
rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
48 } |
5e7450ac27f2
rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
49 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
50 public static void checkNotNull(LuanTable t) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
51 checkNotNull(t,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
52 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
53 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
54 public static void checkNotNull(Number n,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
55 checkNotNull(n,"number",pos); |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
56 } |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
57 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
58 public static void checkNotNull(Number n) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
59 checkNotNull(n,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
60 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
61 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
62 public static void checkNotNull(LuanFunction fn,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
63 checkNotNull(fn,"function",pos); |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
64 } |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
65 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
66 public static void checkNotNull(LuanFunction fn) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
67 checkNotNull(fn,1); |
582
31926755689e
add Thread.synchronized
Franklin Schmidt <fschmidt@gmail.com>
parents:
578
diff
changeset
|
68 } |
31926755689e
add Thread.synchronized
Franklin Schmidt <fschmidt@gmail.com>
parents:
578
diff
changeset
|
69 |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
70 public static String readAll(Reader in) |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
71 throws IOException |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
72 { |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
73 char[] a = new char[bufSize]; |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
74 StringBuilder buf = new StringBuilder(); |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
75 int n; |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
76 while( (n=in.read(a)) != -1 ) { |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
77 buf.append(a,0,n); |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
78 } |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
79 return buf.toString(); |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
80 } |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
81 |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
82 public static byte[] readAll(InputStream in) |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
83 throws IOException |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
84 { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
85 ByteArrayOutputStream out = new ByteArrayOutputStream(); |
1493 | 86 IoUtils.copyAll(in,out); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
87 return out.toByteArray(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
88 } |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
89 |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
90 |
1420 | 91 public static String removeString(LuanTable options,String key) throws LuanException { |
92 Object val = options.remove(key); | |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
93 if( val!=null && !(val instanceof String) ) |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
94 throw new LuanException( "parameter '"+key+"' must be a string but is a "+Luan.type(val) ); |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
95 return (String)val; |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
96 } |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
97 |
1420 | 98 public static String removeRequiredString(LuanTable options,String key) throws LuanException { |
99 String s = removeString(options,key); | |
1392 | 100 if( s==null ) |
101 throw new LuanException( "parameter '"+key+"' is required" ); | |
102 return s; | |
103 } | |
104 | |
1420 | 105 public static Number removeNumber(LuanTable options,String key) throws LuanException { |
106 Object val = options.remove(key); | |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
107 if( val!=null && !(val instanceof Number) ) |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
108 throw new LuanException( "parameter '"+key+"' must be a string but is a "+Luan.type(val) ); |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
109 return (Number)val; |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
110 } |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
111 |
1420 | 112 public static Integer removeInteger(LuanTable options,String key) throws LuanException { |
113 Object val = options.remove(key); | |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
114 if( val==null ) |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
115 return null; |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
116 Integer i = Luan.asInteger(val); |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
117 if( i==null ) { |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
118 String type = val instanceof Number ? val.getClass().getSimpleName().toLowerCase() : Luan.type(val); |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
119 throw new LuanException( "parameter '"+key+"' must be an integer but is a "+type ); |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
120 } |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
121 return i; |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
122 } |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
123 |
1420 | 124 public static LuanTable removeTable(LuanTable options,String key) throws LuanException { |
125 Object val = options.remove(key); | |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
126 if( val!=null && !(val instanceof LuanTable) ) |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
127 throw new LuanException( "parameter '"+key+"' must be a table but is a "+Luan.type(val) ); |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
128 return (LuanTable)val; |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
129 } |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
130 |
1420 | 131 public static Boolean removeBoolean(LuanTable options,String key) throws LuanException { |
132 Object val = options.remove(key); | |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
133 if( val!=null && !(val instanceof Boolean) ) |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
134 throw new LuanException( "parameter '"+key+"' must be a string but is a "+Luan.type(val) ); |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
135 return (Boolean)val; |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
136 } |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
137 |
1420 | 138 public static LuanFunction removeFunction(LuanTable options,String key) throws LuanException { |
139 Object val = options.remove(key); | |
1392 | 140 if( val!=null && !(val instanceof LuanFunction) ) |
141 throw new LuanException( "parameter '"+key+"' must be a function but is a "+Luan.type(val) ); | |
142 return (LuanFunction)val; | |
143 } | |
144 | |
1420 | 145 public static LuanFunction removeRequiredFunction(LuanTable options,String key) throws LuanException { |
146 LuanFunction fn = removeFunction(options,key); | |
1392 | 147 if( fn==null ) |
148 throw new LuanException( "parameter '"+key+"' is required" ); | |
149 return fn; | |
150 } | |
151 | |
1420 | 152 public static void checkEmpty(LuanTable options) throws LuanException { |
153 if( !options.isEmpty() ) | |
154 throw new LuanException( "unrecognized options: "+options.asMap() ); | |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
155 } |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1367
diff
changeset
|
156 |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
157 } |