comparison src/luan/lib/JavaLib.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 64ecb7a3aad7
comparison
equal deleted inserted replaced
45:b1b14d09fc98 46:a443637829c1
9 import java.util.Map; 9 import java.util.Map;
10 import java.util.HashMap; 10 import java.util.HashMap;
11 import java.util.List; 11 import java.util.List;
12 import java.util.ArrayList; 12 import java.util.ArrayList;
13 import java.util.Iterator; 13 import java.util.Iterator;
14 import luan.LuaNumber; 14 import luan.Lua;
15 import luan.LuaState; 15 import luan.LuaState;
16 import luan.LuaTable; 16 import luan.LuaTable;
17 import luan.MetatableGetter; 17 import luan.MetatableGetter;
18 import luan.LuaException; 18 import luan.LuaException;
19 import luan.LuaFunction; 19 import luan.LuaFunction;
90 Class cls = obj.getClass(); 90 Class cls = obj.getClass();
91 if( cls.isArray() ) { 91 if( cls.isArray() ) {
92 if( "length".equals(key) ) { 92 if( "length".equals(key) ) {
93 return Array.getLength(obj); 93 return Array.getLength(obj);
94 } 94 }
95 if( key instanceof LuaNumber ) { 95 Integer i = Lua.asInteger(key);
96 LuaNumber n = (LuaNumber)key; 96 if( i != null ) {
97 double d = n.value(); 97 return Array.get(obj,i);
98 int i = (int)d;
99 if( d==i ) {
100 return Array.get(obj,i);
101 }
102 } 98 }
103 throw new LuaException(lua,LuaElement.JAVA,"invalid index for java array: "+key); 99 throw new LuaException(lua,LuaElement.JAVA,"invalid index for java array: "+key);
104 } 100 }
105 if( key instanceof String ) { 101 if( key instanceof String ) {
106 String name = (String)key; 102 String name = (String)key;
120 try { 116 try {
121 if( members.size()==1 ) { 117 if( members.size()==1 ) {
122 Member member = members.get(0); 118 Member member = members.get(0);
123 if( member instanceof Field ) { 119 if( member instanceof Field ) {
124 Field field = (Field)member; 120 Field field = (Field)member;
125 Object value = field.get(obj); 121 return field.get(obj);
126 if( value instanceof Number ) {
127 Number n = (Number)value;
128 value = LuaNumber.of(n);
129 }
130 return value;
131 } else { 122 } else {
132 Method method = (Method)member; 123 Method method = (Method)member;
133 return new LuaJavaFunction(method,obj); 124 return new LuaJavaFunction(method,obj);
134 } 125 }
135 } else { 126 } else {