diff src/luan/modules/JavaLuan.java @ 1672:8dd8c556c449

backup work
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 26 May 2022 21:10:02 -0600
parents c922446f53aa
children
line wrap: on
line diff
--- a/src/luan/modules/JavaLuan.java	Thu May 12 10:56:45 2022 -0600
+++ b/src/luan/modules/JavaLuan.java	Thu May 26 21:10:02 2022 -0600
@@ -166,9 +166,10 @@
 		throw new LuanException( "invalid index for java "+cls );
 	}
 
-	private static void setMember(Object obj,List<Member> members,Object value) {
+	private static void setMember(Object obj,List<Member> members,Object value) throws LuanException {
 		Field field = (Field)members.get(0);
 		try {
+/*
 			try {
 				field.set(obj,value);
 			} catch(IllegalArgumentException e) {
@@ -183,10 +184,16 @@
 						}
 					}
 				}
-				throw e;
+				throw new LuanException(e);
 			}
+*/
+			Class cls = field.getType();
+			LuanJavaFunction.ArgConverter ac = LuanJavaFunction.getArgConverter(cls);
+			field.set( obj, ac.convert(value) );
+		} catch(IllegalArgumentException e) {
+			throw new LuanException(e);
 		} catch(IllegalAccessException e) {
-			throw new RuntimeException(e);
+			throw new LuanException(e);
 		}
 	}