(String) array knockout bindings work on derived arrays model
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 19 Feb 2013 16:16:22 +0100
branchmodel
changeset 768e320d8156140
parent 767 2b1cf4f012f2
child 769 0c0fe97fe0c7
(String) array knockout bindings work on derived arrays
javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Tue Feb 19 15:54:36 2013 +0100
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Tue Feb 19 16:16:22 2013 +0100
     1.3 @@ -46,6 +46,7 @@
     1.4  import javax.lang.model.element.VariableElement;
     1.5  import javax.lang.model.type.MirroredTypeException;
     1.6  import javax.lang.model.type.TypeMirror;
     1.7 +import javax.lang.model.util.Types;
     1.8  import javax.tools.Diagnostic;
     1.9  import javax.tools.FileObject;
    1.10  import javax.tools.StandardLocation;
    1.11 @@ -398,10 +399,16 @@
    1.12              }
    1.13              ExecutableElement ee = (ExecutableElement)e;
    1.14              final TypeMirror rt = ee.getReturnType();
    1.15 -            TypeMirror ert = processingEnv.getTypeUtils().erasure(rt);
    1.16 -            final String tn = ert.toString();
    1.17 +            final Types tu = processingEnv.getTypeUtils();
    1.18 +            TypeMirror ert = tu.erasure(rt);
    1.19 +            String tn = ert.toString();
    1.20 +            boolean array = false;
    1.21 +            if (tn.equals("java.util.List")) {
    1.22 +                array = true;
    1.23 +            }
    1.24 +            
    1.25              final String sn = ee.getSimpleName().toString();
    1.26 -            String[] gs = toGetSet(sn, tn, false);
    1.27 +            String[] gs = toGetSet(sn, tn, array);
    1.28              
    1.29              w.write("public " + tn + " " + gs[0] + "() {\n");
    1.30              w.write("  if (locked) throw new IllegalStateException();\n");
    1.31 @@ -439,7 +446,12 @@
    1.32              w.write("    locked = false;\n");
    1.33              w.write("  }\n");
    1.34              w.write("}\n");
    1.35 -            
    1.36 +
    1.37 +            if (array) {
    1.38 +                w.write("private Object[] " + gs[0] + "ToArray() {\n");
    1.39 +                w.write("  return " + gs[0] + "().toArray(new Object[0]);\n");
    1.40 +                w.write("}\n");
    1.41 +            }
    1.42              props.add(e.getSimpleName().toString());
    1.43              props.add(gs[2]);
    1.44              props.add(null);