Changeset 12022


Ignore:
Timestamp:
06/24/09 19:14:51 (14 years ago)
Author:
astalla
Message:

Better type conversion Lisp <-> Java for property getters/setters.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/Java.java

    r11834 r12022  
    756756            return (LispObject) value;
    757757        } else if(value != null) {
    758             return JavaObject.getInstance(value);
     758            return JavaObject.getInstance(value, true);
    759759        } else {
    760760            return NIL;
     
    779779    PropertyDescriptor pd = getPropertyDescriptor(obj, propertyName);
    780780    Object jValue;
    781     if(value == NIL) {
     781    //TODO maybe we should do this in javaInstance(Class)
     782    if(value instanceof JavaObject) {
     783        jValue = value.javaInstance();
     784    } else {
    782785        if(Boolean.TYPE.equals(pd.getPropertyType()) ||
    783786           Boolean.class.equals(pd.getPropertyType())) {
    784       jValue = false;
     787      jValue = value != NIL;
    785788        } else {
    786       jValue = null;
     789      jValue = value != NIL ? value.javaInstance() : null;
    787790        }
    788     } else {
    789         jValue = value.javaInstance();
    790791    }
    791792    pd.getWriteMethod().invoke(obj, jValue);
Note: See TracChangeset for help on using the changeset viewer.