comparison src/luan/lib/JavaLib.java @ 77:4bf3d0c0b6b9

make LuanState cloneable git-svn-id: https://luan-java.googlecode.com/svn/trunk@78 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 15 Feb 2013 09:55:17 +0000
parents f003338d503b
children 6db8f286fa6c
comparison
equal deleted inserted replaced
76:97b03fc807ad 77:4bf3d0c0b6b9
31 31
32 public static final LuanFunction LOADER = new LuanFunction() { 32 public static final LuanFunction LOADER = new LuanFunction() {
33 public Object[] call(LuanState luan,Object[] args) throws LuanException { 33 public Object[] call(LuanState luan,Object[] args) throws LuanException {
34 luan.addMetatableGetter(mg); 34 luan.addMetatableGetter(mg);
35 LuanTable module = new LuanTable(); 35 LuanTable module = new LuanTable();
36 LuanTable global = luan.global; 36 LuanTable global = luan.global();
37 try { 37 try {
38 global.put( "import", new LuanJavaFunction(JavaLib.class.getMethod("importClass",LuanState.class,String.class),null) ); 38 global.put( "import", new LuanJavaFunction(JavaLib.class.getMethod("importClass",LuanState.class,String.class),null) );
39 module.put( "class", new LuanJavaFunction(JavaLib.class.getMethod("getClass",LuanState.class,String.class),null) ); 39 module.put( "class", new LuanJavaFunction(JavaLib.class.getMethod("getClass",LuanState.class,String.class),null) );
40 add( module, "proxy", LuanState.class, Static.class, LuanTable.class, Object.class ); 40 add( module, "proxy", LuanState.class, Static.class, LuanTable.class, Object.class );
41 } catch(NoSuchMethodException e) { 41 } catch(NoSuchMethodException e) {
296 } 296 }
297 return new Static(cls); 297 return new Static(cls);
298 } 298 }
299 299
300 public static void importClass(LuanState luan,String name) throws LuanException { 300 public static void importClass(LuanState luan,String name) throws LuanException {
301 luan.global.put( name.substring(name.lastIndexOf('.')+1), getClass(luan,name) ); 301 luan.global().put( name.substring(name.lastIndexOf('.')+1), getClass(luan,name) );
302 } 302 }
303 303
304 static class AmbiguousJavaFunction extends LuanFunction { 304 static class AmbiguousJavaFunction extends LuanFunction {
305 private final Map<Integer,List<LuanJavaFunction>> fnMap = new HashMap<Integer,List<LuanJavaFunction>>(); 305 private final Map<Integer,List<LuanJavaFunction>> fnMap = new HashMap<Integer,List<LuanJavaFunction>>();
306 306