Mercurial Hosting > luan
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 } |