Mercurial Hosting > luan
comparison src/luan/Lua.java @ 46:a443637829c1
remove LuaNumber
git-svn-id: https://luan-java.googlecode.com/svn/trunk@47 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Thu, 27 Dec 2012 01:48:36 +0000 |
parents | 57054fa43189 |
children |
comparison
equal
deleted
inserted
replaced
45:b1b14d09fc98 | 46:a443637829c1 |
---|---|
9 return "nil"; | 9 return "nil"; |
10 if( obj instanceof String ) | 10 if( obj instanceof String ) |
11 return "string"; | 11 return "string"; |
12 if( obj instanceof Boolean ) | 12 if( obj instanceof Boolean ) |
13 return "boolean"; | 13 return "boolean"; |
14 if( obj instanceof LuaNumber ) | 14 if( obj instanceof Number ) |
15 return "number"; | 15 return "number"; |
16 return "userdata"; | 16 return "userdata"; |
17 } | 17 } |
18 | 18 |
19 public static boolean toBoolean(Object obj) { | 19 public static boolean toBoolean(Object obj) { |
20 return obj != null && !Boolean.FALSE.equals(obj); | 20 return obj != null && !Boolean.FALSE.equals(obj); |
21 } | 21 } |
22 | 22 |
23 public static String asString(Object obj) { | 23 public static String asString(Object obj) { |
24 if( obj instanceof String || obj instanceof LuaNumber ) | 24 if( obj instanceof String ) |
25 return obj.toString(); | 25 return (String)obj; |
26 if( obj instanceof Number ) | |
27 return toString((Number)obj); | |
26 return null; | 28 return null; |
27 } | 29 } |
28 | 30 |
29 public static LuaNumber toNumber(Object obj) { | 31 public static Number toNumber(Object obj) { |
30 return toNumber(obj,null); | 32 return toNumber(obj,null); |
31 } | 33 } |
32 | 34 |
33 public static LuaNumber toNumber(Object obj,Integer base) { | 35 public static Number toNumber(Object obj,Integer base) { |
34 if( obj instanceof LuaNumber ) | 36 if( obj instanceof Number ) |
35 return (LuaNumber)obj; | 37 return (Number)obj; |
36 if( obj instanceof String ) { | 38 if( obj instanceof String ) { |
37 String s = (String)obj; | 39 String s = (String)obj; |
38 try { | 40 try { |
39 if( base==null ) | 41 if( base==null ) |
40 return LuaNumber.of( Double.parseDouble(s) ); | 42 return Double.valueOf(s); |
41 else | 43 else |
42 return LuaNumber.of( Long.parseLong(s,base) ); | 44 return Long.valueOf(s,base); |
43 } catch(NumberFormatException e) {} | 45 } catch(NumberFormatException e) {} |
44 } | 46 } |
45 return null; | 47 return null; |
46 } | 48 } |
47 | 49 |
48 public static Object first(Object[] a) { | 50 public static Object first(Object[] a) { |
49 return a.length==0 ? null : a[0]; | 51 return a.length==0 ? null : a[0]; |
50 } | 52 } |
51 | 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 } | |
52 } | 80 } |