When computing VM method name use erasured type model
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 19 Feb 2013 15:54:36 +0100
branchmodel
changeset 7672b1cf4f012f2
parent 766 06d89ffe489e
child 768 e320d8156140
When computing VM method name use erasured type
javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java
javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/KnockoutTest.java
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Tue Feb 19 15:42:41 2013 +0100
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Tue Feb 19 15:54:36 2013 +0100
     1.3 @@ -397,7 +397,9 @@
     1.4                  continue;
     1.5              }
     1.6              ExecutableElement ee = (ExecutableElement)e;
     1.7 -            final String tn = ee.getReturnType().toString();
     1.8 +            final TypeMirror rt = ee.getReturnType();
     1.9 +            TypeMirror ert = processingEnv.getTypeUtils().erasure(rt);
    1.10 +            final String tn = ert.toString();
    1.11              final String sn = ee.getSimpleName().toString();
    1.12              String[] gs = toGetSet(sn, tn, false);
    1.13              
     2.1 --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/KnockoutTest.java	Tue Feb 19 15:42:41 2013 +0100
     2.2 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/KnockoutTest.java	Tue Feb 19 15:54:36 2013 +0100
     2.3 @@ -17,6 +17,7 @@
     2.4   */
     2.5  package org.apidesign.bck2brwsr.htmlpage;
     2.6  
     2.7 +import java.util.List;
     2.8  import org.apidesign.bck2brwsr.core.JavaScriptBody;
     2.9  import org.apidesign.bck2brwsr.htmlpage.api.ComputedProperty;
    2.10  import org.apidesign.bck2brwsr.htmlpage.api.OnEvent;
    2.11 @@ -71,11 +72,35 @@
    2.12          assert cnt == 2 : "Two children now, but was " + cnt;
    2.13      }
    2.14      
    2.15 +    @HtmlFragment(
    2.16 +        "<ul id='ul' data-bind='foreach: cmpResults'>\n"
    2.17 +        + "  <li><b data-bind='text: $data'></b></li>\n"
    2.18 +        + "</ul>\n"
    2.19 +    )
    2.20 +    @BrwsrTest public void displayContentOfDerivedArray() {
    2.21 +        KnockoutModel m = new KnockoutModel();
    2.22 +        m.getResults().add("Ahoj");
    2.23 +        m.applyBindings();
    2.24 +        
    2.25 +        int cnt = countChildren("ul");
    2.26 +        assert cnt == 1 : "One child, but was " + cnt;
    2.27 +        
    2.28 +        m.getResults().add("hello");
    2.29 +
    2.30 +        cnt = countChildren("ul");
    2.31 +        assert cnt == 2 : "Two children now, but was " + cnt;
    2.32 +    }
    2.33 +    
    2.34      @ComputedProperty
    2.35      static String helloMessage(String name) {
    2.36          return "Hello " + name + "!";
    2.37      }
    2.38      
    2.39 +    @ComputedProperty
    2.40 +    static List<String> cmpResults(List<String> results) {
    2.41 +        return results;
    2.42 +    }
    2.43 +    
    2.44      @Factory
    2.45      public static Object[] create() {
    2.46          return VMTest.create(KnockoutTest.class);