Mercurial Hosting > luan
comparison src/luan/Luan.java @ 1805:7793bcb5f34a default tip
minor
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 08 May 2024 11:13:16 -0600 |
parents | b4328322d2be |
children |
comparison
equal
deleted
inserted
replaced
1804:b4328322d2be | 1805:7793bcb5f34a |
---|---|
421 throws LuanException | 421 throws LuanException |
422 { | 422 { |
423 return load(text,sourceName,persist,null); | 423 return load(text,sourceName,persist,null); |
424 } | 424 } |
425 | 425 |
426 public static final Object nullValue = new Object(); | |
427 | |
426 public static Object toJava(Object obj) throws LuanException { | 428 public static Object toJava(Object obj) throws LuanException { |
427 return toJava(obj,null); | |
428 } | |
429 | |
430 public static Object toJava(Object obj,Object nullValue) throws LuanException { | |
431 if( obj == nullValue ) | 429 if( obj == nullValue ) |
432 return null; | 430 return null; |
433 if( !(obj instanceof LuanTable) ) | 431 if( !(obj instanceof LuanTable) ) |
434 return obj; | 432 return obj; |
435 LuanTable tbl = (LuanTable)obj; | 433 LuanTable tbl = (LuanTable)obj; |
436 if( !tbl.isMap() ) { | 434 if( !tbl.isMap() ) { |
437 List list = new ArrayList(); | 435 List list = new ArrayList(); |
438 for( Object el : tbl.asList() ) { | 436 for( Object el : tbl.asList() ) { |
439 list.add( toJava(el,nullValue) ); | 437 list.add( toJava(el) ); |
440 } | 438 } |
441 return list; | 439 return list; |
442 } else { | 440 } else { |
443 Map map = new LinkedHashMap(); | 441 Map map = new LinkedHashMap(); |
444 Iterator<Map.Entry> iter = tbl.rawIterator(); | 442 Iterator<Map.Entry> iter = tbl.rawIterator(); |
445 while( iter.hasNext() ) { | 443 while( iter.hasNext() ) { |
446 Map.Entry entry = iter.next(); | 444 Map.Entry entry = iter.next(); |
447 map.put( toJava(entry.getKey(),nullValue), toJava(entry.getValue(),nullValue) ); | 445 map.put( toJava(entry.getKey()), toJava(entry.getValue()) ); |
448 } | 446 } |
449 return map; | 447 return map; |
450 } | 448 } |
451 } | 449 } |
452 | 450 |