comparison core/src/luan/LuanTable.java @ 539:473e456444ff

Remove object-oriented primitive methods for string and binary
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 01 Jun 2015 17:53:55 -0600
parents 8e51d6071b67
children f1601a4ce1aa
comparison
equal deleted inserted replaced
538:919b9410008e 539:473e456444ff
130 LuanState luan = bit.luan; 130 LuanState luan = bit.luan;
131 if( obj instanceof LuanTable ) { 131 if( obj instanceof LuanTable ) {
132 LuanTable tbl = (LuanTable)obj; 132 LuanTable tbl = (LuanTable)obj;
133 return tbl.get(luan,key); 133 return tbl.get(luan,key);
134 } 134 }
135 if( obj instanceof String )
136 return StringLuan.__index(bit,(String)obj,key);
137 if( obj instanceof byte[] )
138 return BinaryLuan.__index(bit,(byte[])obj,key);
139 if( obj != null && luan.hasJava() ) 135 if( obj != null && luan.hasJava() )
140 return JavaLuan.__index(bit,obj,key,false); 136 return JavaLuan.__index(bit,obj,key,false);
141 else if( bit.el==null ) 137 else if( bit.el==null )
142 throw bit.exception( "attempt to index a " + Luan.type(obj) + " value" ); 138 throw bit.exception( "attempt to index a " + Luan.type(obj) + " value" );
143 else 139 else
153 return list.get(i); 149 return list.get(i);
154 } 150 }
155 } 151 }
156 if( map==null ) 152 if( map==null )
157 return null; 153 return null;
154 if( key instanceof Number && !(key instanceof Double) ) {
155 Number n = (Number)key;
156 key = Double.valueOf(n.doubleValue());
157 }
158 return map.get(key); 158 return map.get(key);
159 } 159 }
160 160
161 public void put(LuanState luan,Object key,Object value) throws LuanException { 161 public void put(LuanState luan,Object key,Object value) throws LuanException {
162 Object h = getHandler("__new_index"); 162 Object h = getHandler("__new_index");
200 } 200 }
201 return; 201 return;
202 } 202 }
203 } 203 }
204 } 204 }
205 if( map==null ) { 205 if( map==null )
206 map = newMap(); 206 map = newMap();
207 }
208 if( key instanceof Number && !(key instanceof Double) ) { 207 if( key instanceof Number && !(key instanceof Double) ) {
209 Number n = (Number)key; 208 Number n = (Number)key;
210 key = Double.valueOf(n.doubleValue()); 209 key = Double.valueOf(n.doubleValue());
211 } 210 }
212 if( val == null ) { 211 if( val == null ) {