Send in context for JSON deserialization
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 23 Apr 2013 12:44:57 +0200
changeset 25fa6010aedcdf
parent 24 ae78a6f9d1d2
child 26 9b9dd328c8c2
Send in context for JSON deserialization
json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java
     1.1 --- a/json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java	Tue Apr 23 10:15:46 2013 +0200
     1.2 +++ b/json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java	Tue Apr 23 12:44:57 2013 +0200
     1.3 @@ -244,7 +244,8 @@
     1.4                  w.append("      throw new UnsupportedOperationException();\n");
     1.5                  w.append("    }\n");
     1.6                  w.append("  }\n");
     1.7 -                w.append("  ").append(className).append("(Object json) {\n");
     1.8 +                w.append("  ").append(className).append("(Context c, Object json) {\n");
     1.9 +                w.append("    this.context = c;\n");
    1.10                  int values = 0;
    1.11                  for (int i = 0; i < propsGetSet.size(); i += 5) {
    1.12                      Prprt p = findPrprt(props, propsGetSet.get(i));
    1.13 @@ -278,7 +279,7 @@
    1.14                          w.append("  for (Object e : ((Object[])ret[" + cnt + "])) {\n");
    1.15                          if (isModel[0]) {
    1.16                              w.append("    this.prop_").append(pn).append(".add(new ");
    1.17 -                            w.append(type).append("(e));\n");
    1.18 +                            w.append(type).append("(c, e));\n");
    1.19                          } else if (isEnum[0]) {
    1.20                              w.append("    this.prop_").append(pn);
    1.21                              w.append(".add(e == null ? null : ");
    1.22 @@ -786,11 +787,11 @@
    1.23                  "        Object[] data = ((Object[])value);\n" +
    1.24                  "        arr = new " + modelClass + "[data.length];\n" +
    1.25                  "        for (int i = 0; i < data.length; i++) {\n" +
    1.26 -                "          arr[i] = new " + modelClass + "(data[i]);\n" +
    1.27 +                "          arr[i] = new " + modelClass + "(context, data[i]);\n" +
    1.28                  "        }\n" +
    1.29                  "      } else {\n" +
    1.30                  "        arr = new " + modelClass + "[1];\n" +
    1.31 -                "        arr[0] = new " + modelClass + "(value);\n" +
    1.32 +                "        arr[0] = new " + modelClass + "(context, value);\n" +
    1.33                  "      }\n"
    1.34              );
    1.35              {