comparison 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
comparison
equal deleted inserted replaced
1258:e4d7a3114fa8 1259:e8020216dee7
1 package luan; 1 package luan;
2 2
3 import java.lang.reflect.Array;
3 import java.util.List; 4 import java.util.List;
4 import java.util.ArrayList; 5 import java.util.ArrayList;
5 import java.util.Map; 6 import java.util.Map;
6 import java.util.LinkedHashMap; 7 import java.util.LinkedHashMap;
7 import java.util.Set; 8 import java.util.Set;
128 throws LuanException 129 throws LuanException
129 { 130 {
130 return load(text,sourceName,null); 131 return load(text,sourceName,null);
131 } 132 }
132 133
133 134 /*
134 public static Object toLuan(Object obj) throws LuanException { 135 public static Object toLuan(Object obj) throws LuanException {
135 if( !type(obj).equals("java") ) 136 if( !type(obj).equals("java") )
136 return obj; 137 return obj;
137 LuanTable tbl = new LuanTable(); 138 LuanTable tbl = new LuanTable();
138 if( obj instanceof Map ) { 139 if( obj instanceof Map ) {
171 if( val != null ) 172 if( val != null )
172 tbl.rawPut(i+1,toLuan(val)); 173 tbl.rawPut(i+1,toLuan(val));
173 } 174 }
174 return tbl; 175 return tbl;
175 } 176 }
177 */
176 178
177 public static Object toJava(Object obj) throws LuanException { 179 public static Object toJava(Object obj) throws LuanException {
178 if( !(obj instanceof LuanTable) ) 180 if( !(obj instanceof LuanTable) )
179 return obj; 181 return obj;
180 LuanTable tbl = (LuanTable)obj; 182 LuanTable tbl = (LuanTable)obj;
198 public static LuanTable table(LuanTable v) throws LuanException { 200 public static LuanTable table(LuanTable v) throws LuanException {
199 Utils.checkNotNull(v); 201 Utils.checkNotNull(v);
200 return v; 202 return v;
201 } 203 }
202 204
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 }
203 235
204 private Luan() {} // never 236 private Luan() {} // never
205 } 237 }