From 53ea4816eedbfa8efd08e28e78d87899581be6e6 Mon Sep 17 00:00:00 2001 From: Denis Anisimov Date: Mon, 19 Sep 2016 10:46:20 +0300 Subject: [PATCH] Override forSelect methods for BeanBinder to return narrowed type. Change-Id: Ib97117d8d0b450edc49309902df535361e901942 --- .../main/java/com/vaadin/data/BeanBinder.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/src/main/java/com/vaadin/data/BeanBinder.java b/server/src/main/java/com/vaadin/data/BeanBinder.java index 64436c26a8..21aeb84735 100644 --- a/server/src/main/java/com/vaadin/data/BeanBinder.java +++ b/server/src/main/java/com/vaadin/data/BeanBinder.java @@ -21,12 +21,15 @@ import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.function.Predicate; import com.vaadin.data.util.BeanUtil; import com.vaadin.data.util.converter.Converter; import com.vaadin.data.validator.BeanValidator; +import com.vaadin.ui.AbstractMultiSelect; +import com.vaadin.ui.AbstractSingleSelect; /** * A {@code Binder} subclass specialized for binding beans: classes @@ -261,6 +264,20 @@ public class BeanBinder extends Binder { this::handleValidationStatus); } + @Override + public BeanBinding forSelect( + AbstractSingleSelect select) { + return (BeanBinding) super.forSelect( + select); + } + + @Override + public BeanBinding, Set> forSelect( + AbstractMultiSelect select) { + return (BeanBinding, Set>) super.forSelect( + select); + } + /** * Binds the given field to the property with the given name. The getter and * setter methods of the property are looked up with bean introspection and -- 2.39.5