comparison 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
comparison
equal deleted inserted replaced
1671:8066b8882732 1672:8dd8c556c449
164 } 164 }
165 } 165 }
166 throw new LuanException( "invalid index for java "+cls ); 166 throw new LuanException( "invalid index for java "+cls );
167 } 167 }
168 168
169 private static void setMember(Object obj,List<Member> members,Object value) { 169 private static void setMember(Object obj,List<Member> members,Object value) throws LuanException {
170 Field field = (Field)members.get(0); 170 Field field = (Field)members.get(0);
171 try { 171 try {
172 /*
172 try { 173 try {
173 field.set(obj,value); 174 field.set(obj,value);
174 } catch(IllegalArgumentException e) { 175 } catch(IllegalArgumentException e) {
175 Class cls = field.getType(); 176 Class cls = field.getType();
176 if( value instanceof Number ) { 177 if( value instanceof Number ) {
181 field.setInt(obj,r); 182 field.setInt(obj,r);
182 return; 183 return;
183 } 184 }
184 } 185 }
185 } 186 }
186 throw e; 187 throw new LuanException(e);
187 } 188 }
189 */
190 Class cls = field.getType();
191 LuanJavaFunction.ArgConverter ac = LuanJavaFunction.getArgConverter(cls);
192 field.set( obj, ac.convert(value) );
193 } catch(IllegalArgumentException e) {
194 throw new LuanException(e);
188 } catch(IllegalAccessException e) { 195 } catch(IllegalAccessException e) {
189 throw new RuntimeException(e); 196 throw new LuanException(e);
190 } 197 }
191 } 198 }
192 199
193 public static boolean privateAccess = false; 200 public static boolean privateAccess = false;
194 private static Map<Class,Map<String,List<Member>>> memberMap = new HashMap<Class,Map<String,List<Member>>>(); 201 private static Map<Class,Map<String,List<Member>>> memberMap = new HashMap<Class,Map<String,List<Member>>>();