memberField.getName(),
objectWithMemberFields.getClass().getName()));
}
- if (propertyType.equals(valueType)) {
+ if (propertyType.equals(GenericTypeReflector.erase(valueType))) {
HasValue<?> field;
// Get the field from the object
try {
throw new IllegalStateException(String.format(
"Property type '%s' doesn't "
+ "match the field type '%s'. "
- + "Binding should be configured manulaly using converter.",
+ + "Binding should be configured manually using converter.",
propertyType.getName(), valueType.getTypeName()));
}
}
import java.lang.reflect.Method;
import java.util.List;
+import java.util.Set;
import org.junit.Assert;
import org.junit.Before;
import com.vaadin.data.BeanBinder.BeanBindingBuilder;
import com.vaadin.data.Binder.BindingBuilder;
import com.vaadin.tests.data.bean.BeanToValidate;
+import com.vaadin.ui.CheckBoxGroup;
public class BeanBinderTest
extends BinderTestBase<BeanBinder<BeanToValidate>, BeanToValidate> {
+ private enum TestEnum {
+ }
+
+ private class TestClass {
+ private CheckBoxGroup<TestEnum> enums;
+ }
+
+ private class TestBean {
+ private Set<TestEnum> enums;
+
+ public Set<TestEnum> getEnums() {
+ return enums;
+ }
+
+ public void setEnums(Set<TestEnum> enums) {
+ this.enums = enums;
+ }
+ }
+
@Before
public void setUp() {
binder = new BeanBinder<>(BeanToValidate.class);
item.setAge(32);
}
+ @Test
+ public void bindInstanceFields_parameters_type_erased() {
+ BeanBinder<TestBean> otherBinder = new BeanBinder<>(TestBean.class);
+ TestClass testClass = new TestClass();
+ otherBinder.bindInstanceFields(testClass);
+ }
+
@Test
public void fieldBound_bindBean_fieldValueUpdated() {
binder.bind(nameField, "firstname");