Class<? extends SharedState> stateType = connector.getStateType();
Object diffState = connectorTracker.getDiffState(connector);
if (diffState == null) {
- diffState = new JSONObject();
// Use an empty state object as reference for full
// repaints
- boolean emptyInitialState = JavaScriptConnectorState.class
+
+ boolean supportsDiffState = !JavaScriptConnectorState.class
.isAssignableFrom(stateType);
- if (!emptyInitialState) {
+ if (supportsDiffState) {
+ diffState = new JSONObject();
try {
SharedState referenceState = stateType.newInstance();
diffState = JsonCodec.encode(referenceState, null,
"Error creating reference object for state of type "
+ stateType.getName());
}
+ connectorTracker.setDiffState(connector, diffState);
}
- connectorTracker.setDiffState(connector, diffState);
}
JSONObject stateJson = (JSONObject) JsonCodec.encode(state, diffState,
stateType, root.getConnectorTracker());