1.1 --- a/json/src/main/java/org/apidesign/html/json/spi/PropertyBinding.java Sun Jan 05 22:08:25 2014 +0100
1.2 +++ b/json/src/main/java/org/apidesign/html/json/spi/PropertyBinding.java Sun Jan 05 22:26:35 2014 +0100
1.3 @@ -43,6 +43,7 @@
1.4 package org.apidesign.html.json.spi;
1.5
1.6 import net.java.html.BrwsrCtx;
1.7 +import org.netbeans.html.json.impl.Bindings;
1.8 import org.netbeans.html.json.impl.PropertyBindingAccessor;
1.9 import org.netbeans.html.json.impl.PropertyBindingAccessor.PBData;
1.10 import org.netbeans.html.json.impl.RcvrJSON;
1.11 @@ -71,6 +72,11 @@
1.12 protected JSONCall newCall(BrwsrCtx ctx, RcvrJSON callback, String urlBefore, String urlAfter, String method, Object data) {
1.13 return new JSONCall(ctx, callback, urlBefore, urlAfter, method, data);
1.14 }
1.15 +
1.16 + @Override
1.17 + protected Bindings bindings(Proto proto, boolean initialize) {
1.18 + return initialize ? proto.initBindings() : proto.getBindings();
1.19 + }
1.20 };
1.21 }
1.22
2.1 --- a/json/src/main/java/org/apidesign/html/json/spi/Proto.java Sun Jan 05 22:08:25 2014 +0100
2.2 +++ b/json/src/main/java/org/apidesign/html/json/spi/Proto.java Sun Jan 05 22:26:35 2014 +0100
2.3 @@ -182,8 +182,7 @@
2.4 return JSON.read(context, modelClass, data);
2.5 }
2.6
2.7 - // XXX: Don't expose internal type
2.8 - public Bindings initBindings() {
2.9 + final Bindings initBindings() {
2.10 if (ko == null) {
2.11 Bindings b = Bindings.apply(context, obj);
2.12 PropertyBinding[] pb = new PropertyBinding[type.propertyNames.length];
3.1 --- a/json/src/main/java/org/netbeans/html/json/impl/JSONList.java Sun Jan 05 22:08:25 2014 +0100
3.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/JSONList.java Sun Jan 05 22:26:35 2014 +0100
3.3 @@ -203,6 +203,6 @@
3.4 }
3.5
3.6 final Object koData() {
3.7 - return koData(this, proto.initBindings());
3.8 + return koData(this, PropertyBindingAccessor.getBindings(proto, true));
3.9 }
3.10 }
4.1 --- a/json/src/main/java/org/netbeans/html/json/impl/PropertyBindingAccessor.java Sun Jan 05 22:08:25 2014 +0100
4.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/PropertyBindingAccessor.java Sun Jan 05 22:26:35 2014 +0100
4.3 @@ -69,7 +69,12 @@
4.4 BrwsrCtx ctx, RcvrJSON callback, String urlBefore, String urlAfter,
4.5 String method, Object data
4.6 );
4.7 -
4.8 +
4.9 + protected abstract Bindings bindings(Proto proto, boolean initialize);
4.10 +
4.11 + static Bindings getBindings(Proto proto, boolean initialize) {
4.12 + return DEFAULT.bindings(proto, initialize);
4.13 + }
4.14
4.15 static <M> PropertyBinding create(PBData<M> d) {
4.16 return DEFAULT.newBinding(d);
5.1 --- a/json/src/main/java/org/netbeans/html/json/impl/WrapperObject.java Sun Jan 05 22:08:25 2014 +0100
5.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/WrapperObject.java Sun Jan 05 22:26:35 2014 +0100
5.3 @@ -77,7 +77,7 @@
5.4 if (proto == null) {
5.5 return null;
5.6 }
5.7 - final Bindings b = proto.initBindings();
5.8 + final Bindings b = PropertyBindingAccessor.getBindings(proto, true);
5.9 return b == null ? null : b.koData();
5.10 }
5.11 }