Can call JavaBean methods are functions beans
authorJaroslav Tulach <jtulach@netbeans.org>
Sun, 03 Aug 2014 21:35:36 +0200
branchbeans
changeset 7995459af9a18b4
parent 798 adea790315fc
child 800 a7a20811de1a
Can call JavaBean methods are functions
json-beans/src/main/java/net/java/html/beans/JSONBeans.java
json-beans/src/test/java/net/java/html/beans/Person.java
     1.1 --- a/json-beans/src/main/java/net/java/html/beans/JSONBeans.java	Sun Aug 03 21:15:07 2014 +0200
     1.2 +++ b/json-beans/src/main/java/net/java/html/beans/JSONBeans.java	Sun Aug 03 21:35:36 2014 +0200
     1.3 @@ -147,7 +147,16 @@
     1.4  
     1.5          @Override
     1.6          protected void call(Object model, int index, Object data, Object event) throws Exception {
     1.7 -            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
     1.8 +            Method m = methods[index].getMethod();
     1.9 +            final Class<?>[] types = m.getParameterTypes();
    1.10 +            Object[] args = new Object[types.length];
    1.11 +            if (args.length > 0) {
    1.12 +                args[0] = extractValue(types[0], data);
    1.13 +            }
    1.14 +            if (args.length > 1) {
    1.15 +                args[1] = extractValue(types[1], event);
    1.16 +            }
    1.17 +            m.invoke(model, args);
    1.18          }
    1.19  
    1.20          @Override
     2.1 --- a/json-beans/src/test/java/net/java/html/beans/Person.java	Sun Aug 03 21:15:07 2014 +0200
     2.2 +++ b/json-beans/src/test/java/net/java/html/beans/Person.java	Sun Aug 03 21:35:36 2014 +0200
     2.3 @@ -78,6 +78,18 @@
     2.4          this.sex = sex;
     2.5          propertyChangeSupport.firePropertyChange(PROP_SEX, oldSex, sex);
     2.6      }
     2.7 +    
     2.8 +    public void changeSex(Sex to) {
     2.9 +        if (to != null) {
    2.10 +            setSex(to);
    2.11 +            return;
    2.12 +        }
    2.13 +        if (getSex() == Sex.MALE) {
    2.14 +            setSex(Sex.FEMALE);
    2.15 +        } else {
    2.16 +            setSex(Sex.MALE);
    2.17 +        }
    2.18 +    }
    2.19  
    2.20      public String getFirstName() {
    2.21          return firstName;