comparison src/luan/Luan.java @ 48:64ecb7a3aad7

rename Lua to Luan git-svn-id: https://luan-java.googlecode.com/svn/trunk@49 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 28 Dec 2012 03:29:12 +0000
parents src/luan/Lua.java@a443637829c1
children f7e17cfb35f9
comparison
equal deleted inserted replaced
47:659c7139e903 48:64ecb7a3aad7
1 package luan;
2
3
4 public class Luan {
5 public static final String version = "Luan 0.0";
6
7 public static String type(Object obj) {
8 if( obj == null )
9 return "nil";
10 if( obj instanceof String )
11 return "string";
12 if( obj instanceof Boolean )
13 return "boolean";
14 if( obj instanceof Number )
15 return "number";
16 return "userdata";
17 }
18
19 public static boolean toBoolean(Object obj) {
20 return obj != null && !Boolean.FALSE.equals(obj);
21 }
22
23 public static String asString(Object obj) {
24 if( obj instanceof String )
25 return (String)obj;
26 if( obj instanceof Number )
27 return toString((Number)obj);
28 return null;
29 }
30
31 public static Number toNumber(Object obj) {
32 return toNumber(obj,null);
33 }
34
35 public static Number toNumber(Object obj,Integer base) {
36 if( obj instanceof Number )
37 return (Number)obj;
38 if( obj instanceof String ) {
39 String s = (String)obj;
40 try {
41 if( base==null )
42 return Double.valueOf(s);
43 else
44 return Long.valueOf(s,base);
45 } catch(NumberFormatException e) {}
46 }
47 return null;
48 }
49
50 public static Object first(Object[] a) {
51 return a.length==0 ? null : a[0];
52 }
53
54 public static String toString(Number n) {
55 if( n instanceof Integer )
56 return n.toString();
57 String s = n.toString();
58 int iE = s.indexOf('E');
59 String ending = null;
60 if( iE != -1 ) {
61 ending = s.substring(iE);
62 s = s.substring(0,iE);
63 }
64 if( s.endsWith(".0") )
65 s = s.substring(0,s.length()-2);
66 if( ending != null )
67 s += ending;
68 return s;
69 }
70
71 public static Integer asInteger(Object obj) {
72 if( obj instanceof Integer )
73 return (Integer)obj;
74 if( !(obj instanceof Number) )
75 return null;
76 Number n = (Number)obj;
77 int i = n.intValue();
78 return i==n.doubleValue() ? Integer.valueOf(i) : null;
79 }
80 }