comparison core/src/luan/LuanJavaFunction.java @ 396:ba8b0aae6453

work on manual; add LuanJavaFunction.ARG_COLLECTION;
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 26 Apr 2015 21:19:10 -0600
parents 899253043270
children 1b38de2b1845
comparison
equal deleted inserted replaced
395:a7cb58532846 396:ba8b0aae6453
8 import java.util.ArrayList; 8 import java.util.ArrayList;
9 import java.util.Map; 9 import java.util.Map;
10 import java.util.HashMap; 10 import java.util.HashMap;
11 import java.util.Set; 11 import java.util.Set;
12 import java.util.Arrays; 12 import java.util.Arrays;
13 import java.util.Collection;
13 14
14 15
15 public final class LuanJavaFunction extends LuanFunction { 16 public final class LuanJavaFunction extends LuanFunction {
16 private final JavaMethod method; 17 private final JavaMethod method;
17 private Object obj; 18 private Object obj;
456 } 457 }
457 return obj; 458 return obj;
458 } 459 }
459 @Override public String toString() { 460 @Override public String toString() {
460 return "ARG_SET"; 461 return "ARG_SET";
462 }
463 };
464
465 private static final ArgConverter ARG_COLLECTION = new ArgConverter() {
466 public Object convert(Object obj) {
467 if( obj instanceof LuanTableImpl ) {
468 LuanTableImpl t = (LuanTableImpl)obj;
469 if( t.isList() )
470 return t.asList();
471 if( t.isSet() )
472 return t.asSet();
473 }
474 return obj;
475 }
476 @Override public String toString() {
477 return "ARG_COLLECTION";
461 } 478 }
462 }; 479 };
463 480
464 private static class ArgArray implements ArgConverter { 481 private static class ArgArray implements ArgConverter {
465 private final Object[] a; 482 private final Object[] a;
527 return ARG_MAP; 544 return ARG_MAP;
528 if( cls.equals(List.class) ) 545 if( cls.equals(List.class) )
529 return ARG_LIST; 546 return ARG_LIST;
530 if( cls.equals(Set.class) ) 547 if( cls.equals(Set.class) )
531 return ARG_SET; 548 return ARG_SET;
549 if( cls.equals(Collection.class) )
550 return ARG_COLLECTION;
532 if( cls.isArray() && !cls.getComponentType().isPrimitive() ) 551 if( cls.isArray() && !cls.getComponentType().isPrimitive() )
533 return new ArgArray(cls); 552 return new ArgArray(cls);
534 return ARG_SAME; 553 return ARG_SAME;
535 } 554 }
536 555