1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Mon Jan 21 07:00:56 2013 +0100
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Mon Jan 21 11:55:27 2013 +0100
1.3 @@ -95,6 +95,7 @@
1.4 w.append("package " + pkg + ";\n");
1.5 w.append("import org.apidesign.bck2brwsr.htmlpage.api.*;\n");
1.6 w.append("class ").append(className).append(" {\n");
1.7 + w.append(" private static boolean locked;\n");
1.8 w.append(" private ").append(className).append("() {}\n");
1.9 for (String id : pp.ids()) {
1.10 String tag = pp.tagNameForId(id);
1.11 @@ -272,9 +273,11 @@
1.12
1.13 w.write("private static " + tn + " prop_" + p.name() + ";\n");
1.14 w.write("public static " + tn + " " + gs[0] + "() {\n");
1.15 + w.write(" if (locked) throw new IllegalStateException();\n");
1.16 w.write(" return prop_" + p.name() + ";\n");
1.17 w.write("}\n");
1.18 w.write("public static void " + gs[1] + "(" + tn + " v) {\n");
1.19 + w.write(" if (locked) throw new IllegalStateException();\n");
1.20 w.write(" prop_" + p.name() + " = v;\n");
1.21 w.write(" if (ko != null) {\n");
1.22 w.write(" ko.valueHasMutated(\"" + p.name() + "\");\n");
1.23 @@ -310,14 +313,14 @@
1.24 String[] gs = toGetSet(sn, tn);
1.25
1.26 w.write("public static " + tn + " " + gs[0] + "() {\n");
1.27 - w.write(" return " + e.getEnclosingElement().getSimpleName() + '.' + e.getSimpleName() + "(");
1.28 - String sep = "";
1.29 + w.write(" if (locked) throw new IllegalStateException();\n");
1.30 + int arg = 0;
1.31 for (VariableElement pe : ee.getParameters()) {
1.32 final String dn = pe.getSimpleName().toString();
1.33 - String[] call = toGetSet(dn, pe.asType().toString());
1.34 - w.write(sep);
1.35 - w.write(call[0] + "()");
1.36 - sep = ", ";
1.37 + final String dt = pe.asType().toString();
1.38 + String[] call = toGetSet(dn, dt);
1.39 + w.write(" " + dt + " arg" + (++arg) + " = ");
1.40 + w.write(call[0] + "();\n");
1.41
1.42 Collection<String> depends = deps.get(dn);
1.43 if (depends == null) {
1.44 @@ -326,7 +329,19 @@
1.45 }
1.46 depends.add(sn);
1.47 }
1.48 + w.write(" try {\n");
1.49 + w.write(" locked = true;\n");
1.50 + w.write(" return " + e.getEnclosingElement().getSimpleName() + '.' + e.getSimpleName() + "(");
1.51 + String sep = "";
1.52 + for (int i = 1; i <= arg; i++) {
1.53 + w.write(sep);
1.54 + w.write("arg" + i);
1.55 + sep = ", ";
1.56 + }
1.57 w.write(");\n");
1.58 + w.write(" } finally {\n");
1.59 + w.write(" locked = false;\n");
1.60 + w.write(" }\n");
1.61 w.write("}\n");
1.62
1.63 props.add(e.getSimpleName().toString());