Mercurial Hosting > luan
diff src/luan/Luan.java @ 1259:e8020216dee7
add Luan.to_luan and fix multipart/form-data
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 23 Sep 2018 17:58:40 -0600 |
parents | ce3279ef1bd9 |
children | 4b5b84853f6f |
line wrap: on
line diff
--- a/src/luan/Luan.java Thu Sep 20 22:11:11 2018 -0600 +++ b/src/luan/Luan.java Sun Sep 23 17:58:40 2018 -0600 @@ -1,5 +1,6 @@ package luan; +import java.lang.reflect.Array; import java.util.List; import java.util.ArrayList; import java.util.Map; @@ -130,7 +131,7 @@ return load(text,sourceName,null); } - +/* public static Object toLuan(Object obj) throws LuanException { if( !type(obj).equals("java") ) return obj; @@ -173,6 +174,7 @@ } return tbl; } +*/ public static Object toJava(Object obj) throws LuanException { if( !(obj instanceof LuanTable) ) @@ -200,6 +202,36 @@ return v; } + public static LuanTable toTable(Object obj) { + if( obj == null ) + return null; + if( obj instanceof LuanTable ) + return (LuanTable)obj; + if( obj instanceof List ) { + return new LuanTable((List)obj); + } + if( obj instanceof Map ) { + return new LuanTable((Map)obj); + } + if( obj instanceof Set ) { + return new LuanTable((Set)obj); + } + Class cls = obj.getClass(); + if( cls.isArray() ) { + if( cls.getComponentType().isPrimitive() ) { + int len = Array.getLength(obj); + List list = new ArrayList(); + for( int i=0; i<len; i++ ) { + list.add(Array.get(obj,i)); + } + return new LuanTable(list); + } else { + Object[] a = (Object[])obj; + return new LuanTable(Arrays.asList(a)); + } + } + return null; + } private Luan() {} // never }