Mercurial Hosting > luan
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 |