WebComponentBinding implements Serializable { public void updateProperty(String propertyName, Serializable value) { Objects.requireNonNull(propertyName, "Parameter 'propertyName' must not be null!"); PropertyBinding<?> propertyBinding = properties.get(propertyName); if (propertyBinding == null) { throw new IllegalArgumentException( String.format("No %s found for propertyName '%s'!", PropertyData.class.getSimpleName(), propertyName)); } propertyBinding.updateValue(value); } WebComponentBinding(C component); void updateProperty(String propertyName, Serializable value); void updateProperty(String propertyName, JsonValue jsonValue); C getComponent(); Class<? extends Serializable> getPropertyType(String propertyName); boolean hasProperty(String propertyName); void updatePropertiesToComponent(); void bindProperty(
            PropertyConfigurationImpl<C, ? extends Serializable> propertyConfiguration,
            boolean overrideDefault, JsonValue startingValue);  }
@Test public void updateValue() { binding.updateProperty("int", 5); Assert.assertEquals(5, component.integer); JsonObject obj = Json.createObject(); obj.put("String", "Value"); binding.updateProperty("json", obj); Assert.assertEquals("{\"String\":\"Value\"}", component.jsonValue.toJson()); }