Mercurial Hosting > luan
comparison src/luan/Luan.java @ 1267:9fa8b8389578
add LuanTable.luan;
support metatable __gc();
add luan.sql;
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 12 Nov 2018 02:10:41 -0700 |
parents | 4b5b84853f6f |
children | f41919741100 |
comparison
equal
deleted
inserted
replaced
1266:05934fbf635a | 1267:9fa8b8389578 |
---|---|
1 package luan; | 1 package luan; |
2 | 2 |
3 import java.lang.reflect.Array; | |
4 import java.util.List; | 3 import java.util.List; |
5 import java.util.ArrayList; | 4 import java.util.ArrayList; |
6 import java.util.Map; | 5 import java.util.Map; |
7 import java.util.LinkedHashMap; | 6 import java.util.LinkedHashMap; |
8 import java.util.Set; | 7 import java.util.Set; |
200 public static LuanTable table(LuanTable v) throws LuanException { | 199 public static LuanTable table(LuanTable v) throws LuanException { |
201 Utils.checkNotNull(v); | 200 Utils.checkNotNull(v); |
202 return v; | 201 return v; |
203 } | 202 } |
204 */ | 203 */ |
205 public static LuanTable toTable(Object obj) { | |
206 if( obj == null ) | |
207 return null; | |
208 if( obj instanceof LuanTable ) | |
209 return (LuanTable)obj; | |
210 if( obj instanceof List ) { | |
211 return new LuanTable((List)obj); | |
212 } | |
213 if( obj instanceof Map ) { | |
214 return new LuanTable((Map)obj); | |
215 } | |
216 if( obj instanceof Set ) { | |
217 return new LuanTable((Set)obj); | |
218 } | |
219 Class cls = obj.getClass(); | |
220 if( cls.isArray() ) { | |
221 if( cls.getComponentType().isPrimitive() ) { | |
222 int len = Array.getLength(obj); | |
223 List list = new ArrayList(); | |
224 for( int i=0; i<len; i++ ) { | |
225 list.add(Array.get(obj,i)); | |
226 } | |
227 return new LuanTable(list); | |
228 } else { | |
229 Object[] a = (Object[])obj; | |
230 return new LuanTable(Arrays.asList(a)); | |
231 } | |
232 } | |
233 return null; | |
234 } | |
235 | 204 |
236 private Luan() {} // never | 205 private Luan() {} // never |
237 } | 206 } |