Mercurial Hosting > luan
comparison core/src/luan/modules/JavaLuan.java @ 646:cdc70de628b5
simplify LuanException
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 29 Mar 2016 19:58:39 -0600 |
parents | 859c0dedc8b6 |
children | 8e8c30b72e9b |
comparison
equal
deleted
inserted
replaced
645:859c0dedc8b6 | 646:cdc70de628b5 |
---|---|
40 } | 40 } |
41 } | 41 } |
42 | 42 |
43 private static void checkJava(LuanState luan) throws LuanException { | 43 private static void checkJava(LuanState luan) throws LuanException { |
44 if( !luan.hasJava() ) | 44 if( !luan.hasJava() ) |
45 throw new LuanException(luan,"Java isn't allowed"); | 45 throw new LuanException("Java isn't allowed"); |
46 } | 46 } |
47 | 47 |
48 static final Object FAIL = new Object(); | 48 static final Object FAIL = new Object(); |
49 | 49 |
50 public static Object __index(LuanState luan,Object obj,Object key,boolean canReturnFail) throws LuanException { | 50 public static Object __index(LuanState luan,Object obj,Object key,boolean canReturnFail) throws LuanException { |
107 } | 107 } |
108 } | 108 } |
109 //System.out.println("invalid member '"+key+"' for java object: "+obj); | 109 //System.out.println("invalid member '"+key+"' for java object: "+obj); |
110 if( canReturnFail ) | 110 if( canReturnFail ) |
111 return FAIL; | 111 return FAIL; |
112 throw new LuanException(luan, "invalid index for java "+cls ); | 112 throw new LuanException( "invalid index for java "+cls ); |
113 } | 113 } |
114 | 114 |
115 private static Object member(Object obj,List<Member> members) throws LuanException { | 115 private static Object member(Object obj,List<Member> members) throws LuanException { |
116 try { | 116 try { |
117 if( members.size()==1 ) { | 117 if( members.size()==1 ) { |
174 setMember(obj,members,value); | 174 setMember(obj,members,value); |
175 return; | 175 return; |
176 } | 176 } |
177 } | 177 } |
178 } | 178 } |
179 throw new LuanException(luan, "invalid index for java "+cls ); | 179 throw new LuanException( "invalid index for java "+cls ); |
180 } | 180 } |
181 | 181 |
182 private static void setMember(Object obj,List<Member> members,Object value) { | 182 private static void setMember(Object obj,List<Member> members,Object value) { |
183 Field field = (Field)members.get(0); | 183 Field field = (Field)members.get(0); |
184 try { | 184 try { |
375 for( LuanJavaFunction fn : fnMap.get(args.length) ) { | 375 for( LuanJavaFunction fn : fnMap.get(args.length) ) { |
376 try { | 376 try { |
377 return fn.rawCall(luan,args); | 377 return fn.rawCall(luan,args); |
378 } catch(IllegalArgumentException e) {} | 378 } catch(IllegalArgumentException e) {} |
379 } | 379 } |
380 throw new LuanException(luan,"no method matched args: "+Arrays.asList(args)); | 380 throw new LuanException("no method matched args: "+Arrays.asList(args)); |
381 } | 381 } |
382 } | 382 } |
383 | 383 |
384 private static class InstanceOf { | 384 private static class InstanceOf { |
385 private final Object obj; | 385 private final Object obj; |