Mercurial Hosting > luan
comparison core/src/luan/modules/JavaLuan.java @ 264:9e0d4452e649
implement URL style module names
git-svn-id: https://luan-java.googlecode.com/svn/trunk@265 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Wed, 29 Oct 2014 03:50:59 +0000 |
parents | 2a54cb7d1cf4 |
children | 8ac3eaf8ecd9 |
comparison
equal
deleted
inserted
replaced
263:54873a389f80 | 264:9e0d4452e649 |
---|---|
42 return module; | 42 return module; |
43 } | 43 } |
44 }; | 44 }; |
45 | 45 |
46 private static boolean isLoaded(LuanState luan) { | 46 private static boolean isLoaded(LuanState luan) { |
47 return PackageLuan.loaded(luan).get("Java") != null; | 47 return PackageLuan.loaded(luan).get("luan:Java") != null; |
48 } | 48 } |
49 | 49 |
50 public static final LuanFunction javaSearcher = new LuanFunction() { | 50 static LuanFunction javaLoader(LuanState luan,String modName) throws LuanException { |
51 @Override public Object call(LuanState luan,Object[] args) throws LuanException { | 51 if( !isLoaded(luan) ) |
52 if( !isLoaded(luan) ) | 52 return null; |
53 return LuanFunction.NOTHING; | 53 final Static s = JavaLuan.getClass(luan,modName); |
54 String modName = (String)args[0]; | 54 if( s==null ) |
55 final Static s = JavaLuan.getClass(luan,modName); | 55 return null; |
56 if( s==null ) | 56 LuanFunction loader = new LuanFunction() { |
57 return null; | 57 @Override public Object call(LuanState luan,Object[] args) { |
58 LuanFunction loader = new LuanFunction() { | 58 return s; |
59 @Override public Object call(LuanState luan,Object[] args) { | 59 } |
60 return s; | 60 }; |
61 } | 61 return loader; |
62 }; | 62 } |
63 return loader; | |
64 } | |
65 }; | |
66 | 63 |
67 private static void add(LuanTable t,String method,Class<?>... parameterTypes) { | 64 private static void add(LuanTable t,String method,Class<?>... parameterTypes) { |
68 try { | 65 try { |
69 t.put( method, new LuanJavaFunction(JavaLuan.class.getMethod(method,parameterTypes),null) ); | 66 t.put( method, new LuanJavaFunction(JavaLuan.class.getMethod(method,parameterTypes),null) ); |
70 } catch(NoSuchMethodException e) { | 67 } catch(NoSuchMethodException e) { |