# HG changeset patch # User Jaroslav Tulach # Date 1361286982 -3600 # Node ID e320d8156140f1e7bf214dee18a4f3c726185dd4 # Parent 2b1cf4f012f2621fa8deec90535583fde8210b9f (String) array knockout bindings work on derived arrays diff -r 2b1cf4f012f2 -r e320d8156140 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Tue Feb 19 15:54:36 2013 +0100 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Tue Feb 19 16:16:22 2013 +0100 @@ -46,6 +46,7 @@ import javax.lang.model.element.VariableElement; import javax.lang.model.type.MirroredTypeException; import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Types; import javax.tools.Diagnostic; import javax.tools.FileObject; import javax.tools.StandardLocation; @@ -398,10 +399,16 @@ } ExecutableElement ee = (ExecutableElement)e; final TypeMirror rt = ee.getReturnType(); - TypeMirror ert = processingEnv.getTypeUtils().erasure(rt); - final String tn = ert.toString(); + final Types tu = processingEnv.getTypeUtils(); + TypeMirror ert = tu.erasure(rt); + String tn = ert.toString(); + boolean array = false; + if (tn.equals("java.util.List")) { + array = true; + } + final String sn = ee.getSimpleName().toString(); - String[] gs = toGetSet(sn, tn, false); + String[] gs = toGetSet(sn, tn, array); w.write("public " + tn + " " + gs[0] + "() {\n"); w.write(" if (locked) throw new IllegalStateException();\n"); @@ -439,7 +446,12 @@ w.write(" locked = false;\n"); w.write(" }\n"); w.write("}\n"); - + + if (array) { + w.write("private Object[] " + gs[0] + "ToArray() {\n"); + w.write(" return " + gs[0] + "().toArray(new Object[0]);\n"); + w.write("}\n"); + } props.add(e.getSimpleName().toString()); props.add(gs[2]); props.add(null);