]> source.dussan.org Git - vaadin-framework.git/commitdiff
Simplify Binding API by removing the FIELDTYPE type parameter
authorLeif Åstrand <leif@vaadin.com>
Mon, 28 Nov 2016 09:08:38 +0000 (11:08 +0200)
committerVaadin Code Review <review@vaadin.com>
Tue, 29 Nov 2016 07:44:01 +0000 (07:44 +0000)
The type parameter is mainly used internally, the only externally facing
use is to define the exact type of Binding.getField. Code that has
access to a typed instance of Binding does typically also have direct
access to the field instance, so there's no real use for the type
parameter.

Change-Id: Idf2ab18a79ec5f0a7cef83705b8084fbf7014c10

server/src/main/java/com/vaadin/data/BeanBinder.java
server/src/main/java/com/vaadin/data/Binder.java
server/src/main/java/com/vaadin/data/ValidationStatus.java
server/src/test/java/com/vaadin/data/BinderBookOfVaadinTest.java
server/src/test/java/com/vaadin/data/BinderConverterValidatorTest.java
server/src/test/java/com/vaadin/data/BinderStatusChangeTest.java
server/src/test/java/com/vaadin/data/BinderTest.java
server/src/test/java/com/vaadin/data/BinderValidationStatusTest.java

index a2307a51614da6e07aab4abbd1e677acbbd14d11..8bc207ae56f767f9e18a623596443ab2920f1e5e 100644 (file)
@@ -23,6 +23,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
@@ -40,7 +41,6 @@ import com.vaadin.server.SerializableBiConsumer;
 import com.vaadin.server.SerializableFunction;
 import com.vaadin.server.SerializablePredicate;
 import com.vaadin.util.ReflectTools;
-import java.util.Arrays;
 
 /**
  * A {@code Binder} subclass specialized for binding <em>beans</em>: classes
@@ -62,44 +62,41 @@ public class BeanBinder<BEAN> extends Binder<BEAN> {
      *
      * @param <BEAN>
      *            the bean type
-     * @param <FIELDVALUE>
-     *            the field value type
      * @param <TARGET>
      *            the target property type
      */
-    public interface BeanBinding<BEAN, FIELDVALUE, TARGET>
-            extends Binding<BEAN, FIELDVALUE, TARGET> {
+    public interface BeanBinding<BEAN, TARGET> extends Binding<BEAN, TARGET> {
 
         @Override
-        public BeanBinding<BEAN, FIELDVALUE, TARGET> withValidator(
+        public BeanBinding<BEAN, TARGET> withValidator(
                 Validator<? super TARGET> validator);
 
         @Override
-        public default BeanBinding<BEAN, FIELDVALUE, TARGET> withValidator(
+        public default BeanBinding<BEAN, TARGET> withValidator(
                 SerializablePredicate<? super TARGET> predicate,
                 String message) {
-            return (BeanBinding<BEAN, FIELDVALUE, TARGET>) Binding.super.withValidator(
+            return (BeanBinding<BEAN, TARGET>) Binding.super.withValidator(
                     predicate, message);
         }
 
         @Override
-        public <NEWTARGET> BeanBinding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public <NEWTARGET> BeanBinding<BEAN, NEWTARGET> withConverter(
                 Converter<TARGET, NEWTARGET> converter);
 
         @Override
-        public default <NEWTARGET> BeanBinding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public default <NEWTARGET> BeanBinding<BEAN, NEWTARGET> withConverter(
                 SerializableFunction<TARGET, NEWTARGET> toModel,
                 SerializableFunction<NEWTARGET, TARGET> toPresentation) {
-            return (BeanBinding<BEAN, FIELDVALUE, NEWTARGET>) Binding.super.withConverter(
+            return (BeanBinding<BEAN, NEWTARGET>) Binding.super.withConverter(
                     toModel, toPresentation);
         }
 
         @Override
-        public default <NEWTARGET> BeanBinding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public default <NEWTARGET> BeanBinding<BEAN, NEWTARGET> withConverter(
                 SerializableFunction<TARGET, NEWTARGET> toModel,
                 SerializableFunction<NEWTARGET, TARGET> toPresentation,
                 String errorMessage) {
-            return (BeanBinding<BEAN, FIELDVALUE, NEWTARGET>) Binding.super.withConverter(
+            return (BeanBinding<BEAN, NEWTARGET>) Binding.super.withConverter(
                     toModel, toPresentation, errorMessage);
         }
 
@@ -141,7 +138,7 @@ public class BeanBinder<BEAN> extends Binder<BEAN> {
      */
     protected static class BeanBindingImpl<BEAN, FIELDVALUE, TARGET>
             extends BindingImpl<BEAN, FIELDVALUE, TARGET>
-            implements BeanBinding<BEAN, FIELDVALUE, TARGET> {
+            implements BeanBinding<BEAN, TARGET> {
 
         private Method getter;
         private Method setter;
@@ -166,16 +163,15 @@ public class BeanBinder<BEAN> extends Binder<BEAN> {
         }
 
         @Override
-        public BeanBinding<BEAN, FIELDVALUE, TARGET> withValidator(
+        public BeanBinding<BEAN, TARGET> withValidator(
                 Validator<? super TARGET> validator) {
-            return (BeanBinding<BEAN, FIELDVALUE, TARGET>) super.withValidator(
-                    validator);
+            return (BeanBinding<BEAN, TARGET>) super.withValidator(validator);
         }
 
         @Override
-        public <NEWTARGET> BeanBinding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public <NEWTARGET> BeanBinding<BEAN, NEWTARGET> withConverter(
                 Converter<TARGET, NEWTARGET> converter) {
-            return (BeanBinding<BEAN, FIELDVALUE, NEWTARGET>) super.withConverter(
+            return (BeanBinding<BEAN, NEWTARGET>) super.withConverter(
                     converter);
         }
 
@@ -183,7 +179,7 @@ public class BeanBinder<BEAN> extends Binder<BEAN> {
         public void bind(String propertyName) {
             checkUnbound();
 
-            Binding<BEAN, FIELDVALUE, Object> finalBinding;
+            Binding<BEAN, Object> finalBinding;
 
             finalBinding = withConverter(createConverter(), false);
 
@@ -281,10 +277,9 @@ public class BeanBinder<BEAN> extends Binder<BEAN> {
     }
 
     @Override
-    public <FIELDVALUE> BeanBinding<BEAN, FIELDVALUE, FIELDVALUE> forField(
+    public <FIELDVALUE> BeanBinding<BEAN, FIELDVALUE> forField(
             HasValue<FIELDVALUE> field) {
-        return (BeanBinding<BEAN, FIELDVALUE, FIELDVALUE>) super.forField(
-                field);
+        return (BeanBinding<BEAN, FIELDVALUE>) super.forField(field);
     }
 
     /**
@@ -481,7 +476,8 @@ public class BeanBinder<BEAN> extends Binder<BEAN> {
         ArrayList<Field> memberFieldInOrder = new ArrayList<>();
 
         while (searchClass != null) {
-            memberFieldInOrder.addAll(Arrays.asList(searchClass.getDeclaredFields()));
+            memberFieldInOrder
+                    .addAll(Arrays.asList(searchClass.getDeclaredFields()));
             searchClass = searchClass.getSuperclass();
         }
         return memberFieldInOrder;
index df6d72d79c61f7db954b4d00fee4033ab375d839..65e791931deccc64a583c3b0a8e96fd56ba473a5 100644 (file)
@@ -92,15 +92,13 @@ public class Binder<BEAN> implements Serializable {
      *
      * @param <BEAN>
      *            the bean type
-     * @param <FIELDVALUE>
-     *            the value type of the field
      * @param <TARGET>
      *            the target data type of the binding, matches the field type
      *            until a converter has been set
      *
      * @see Binder#forField(HasValue)
      */
-    public interface Binding<BEAN, FIELDVALUE, TARGET> extends Serializable {
+    public interface Binding<BEAN, TARGET> extends Serializable {
 
         /**
          * Completes this binding using the given getter and setter functions
@@ -159,7 +157,7 @@ public class Binder<BEAN> implements Serializable {
          * @throws IllegalStateException
          *             if {@code bind} has already been called
          */
-        public Binding<BEAN, FIELDVALUE, TARGET> withValidator(
+        public Binding<BEAN, TARGET> withValidator(
                 Validator<? super TARGET> validator);
 
         /**
@@ -182,7 +180,7 @@ public class Binder<BEAN> implements Serializable {
          * @throws IllegalStateException
          *             if {@code bind} has already been called
          */
-        public default Binding<BEAN, FIELDVALUE, TARGET> withValidator(
+        public default Binding<BEAN, TARGET> withValidator(
                 SerializablePredicate<? super TARGET> predicate,
                 String message) {
             return withValidator(Validator.from(predicate, message));
@@ -209,7 +207,7 @@ public class Binder<BEAN> implements Serializable {
          * @throws IllegalStateException
          *             if {@code bind} has already been called
          */
-        public default Binding<BEAN, FIELDVALUE, TARGET> withValidator(
+        public default Binding<BEAN, TARGET> withValidator(
                 SerializablePredicate<? super TARGET> predicate,
                 ErrorMessageProvider errorMessageProvider) {
             return withValidator(
@@ -239,7 +237,7 @@ public class Binder<BEAN> implements Serializable {
          * @throws IllegalStateException
          *             if {@code bind} has already been called
          */
-        public <NEWTARGET> Binding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public <NEWTARGET> Binding<BEAN, NEWTARGET> withConverter(
                 Converter<TARGET, NEWTARGET> converter);
 
         /**
@@ -269,7 +267,7 @@ public class Binder<BEAN> implements Serializable {
          * @throws IllegalStateException
          *             if {@code bind} has already been called
          */
-        public default <NEWTARGET> Binding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public default <NEWTARGET> Binding<BEAN, NEWTARGET> withConverter(
                 SerializableFunction<TARGET, NEWTARGET> toModel,
                 SerializableFunction<NEWTARGET, TARGET> toPresentation) {
             return withConverter(Converter.from(toModel, toPresentation,
@@ -307,7 +305,7 @@ public class Binder<BEAN> implements Serializable {
          * @throws IllegalStateException
          *             if {@code bind} has already been called
          */
-        public default <NEWTARGET> Binding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public default <NEWTARGET> Binding<BEAN, NEWTARGET> withConverter(
                 SerializableFunction<TARGET, NEWTARGET> toModel,
                 SerializableFunction<NEWTARGET, TARGET> toPresentation,
                 String errorMessage) {
@@ -323,7 +321,7 @@ public class Binder<BEAN> implements Serializable {
          *            the value to use instead of {@code null}
          * @return a new binding with null representation handling.
          */
-        public default Binding<BEAN, FIELDVALUE, TARGET> withNullRepresentation(
+        public default Binding<BEAN, TARGET> withNullRepresentation(
                 TARGET nullRepresentation) {
             return withConverter(
                     fieldValue -> Objects.equals(fieldValue, nullRepresentation)
@@ -337,7 +335,7 @@ public class Binder<BEAN> implements Serializable {
          *
          * @return the field for the binding
          */
-        public HasValue<FIELDVALUE> getField();
+        public HasValue<?> getField();
 
         /**
          * Sets the given {@code label} to show an error message if validation
@@ -371,8 +369,7 @@ public class Binder<BEAN> implements Serializable {
          *            label to show validation status for the field
          * @return this binding, for chaining
          */
-        public default Binding<BEAN, FIELDVALUE, TARGET> withStatusLabel(
-                Label label) {
+        public default Binding<BEAN, TARGET> withStatusLabel(Label label) {
             return withValidationStatusHandler(status -> {
                 label.setValue(status.getMessage().orElse(""));
                 // Only show the label when validation has failed
@@ -409,7 +406,7 @@ public class Binder<BEAN> implements Serializable {
          *            status change handler
          * @return this binding, for chaining
          */
-        public Binding<BEAN, FIELDVALUE, TARGET> withValidationStatusHandler(
+        public Binding<BEAN, TARGET> withValidationStatusHandler(
                 ValidationStatusHandler handler);
 
         /**
@@ -442,8 +439,7 @@ public class Binder<BEAN> implements Serializable {
          *            the error message to show for the invalid value
          * @return this binding, for chaining
          */
-        public default Binding<BEAN, FIELDVALUE, TARGET> setRequired(
-                String errorMessage) {
+        public default Binding<BEAN, TARGET> setRequired(String errorMessage) {
             return setRequired(context -> errorMessage);
         }
 
@@ -462,7 +458,7 @@ public class Binder<BEAN> implements Serializable {
          *            the provider for localized validation error message
          * @return this binding, for chaining
          */
-        public Binding<BEAN, FIELDVALUE, TARGET> setRequired(
+        public Binding<BEAN, TARGET> setRequired(
                 ErrorMessageProvider errorMessageProvider);
     }
 
@@ -478,7 +474,7 @@ public class Binder<BEAN> implements Serializable {
      *            until a converter has been set
      */
     protected static class BindingImpl<BEAN, FIELDVALUE, TARGET>
-            implements Binding<BEAN, FIELDVALUE, TARGET> {
+            implements Binding<BEAN, TARGET> {
 
         private final Binder<BEAN> binder;
 
@@ -534,7 +530,7 @@ public class Binder<BEAN> implements Serializable {
         }
 
         @Override
-        public Binding<BEAN, FIELDVALUE, TARGET> withValidator(
+        public Binding<BEAN, TARGET> withValidator(
                 Validator<? super TARGET> validator) {
             checkUnbound();
             Objects.requireNonNull(validator, "validator cannot be null");
@@ -545,13 +541,13 @@ public class Binder<BEAN> implements Serializable {
         }
 
         @Override
-        public <NEWTARGET> Binding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        public <NEWTARGET> Binding<BEAN, NEWTARGET> withConverter(
                 Converter<TARGET, NEWTARGET> converter) {
             return withConverter(converter, true);
         }
 
         @Override
-        public Binding<BEAN, FIELDVALUE, TARGET> withValidationStatusHandler(
+        public Binding<BEAN, TARGET> withValidationStatusHandler(
                 ValidationStatusHandler handler) {
             checkUnbound();
             Objects.requireNonNull(handler, "handler cannot be null");
@@ -566,7 +562,7 @@ public class Binder<BEAN> implements Serializable {
         }
 
         @Override
-        public Binding<BEAN, FIELDVALUE, TARGET> setRequired(
+        public Binding<BEAN, TARGET> setRequired(
                 ErrorMessageProvider errorMessageProvider) {
             checkUnbound();
 
@@ -601,7 +597,7 @@ public class Binder<BEAN> implements Serializable {
          * @throws IllegalStateException
          *             if {@code bind} has already been called
          */
-        protected <NEWTARGET> Binding<BEAN, FIELDVALUE, NEWTARGET> withConverter(
+        protected <NEWTARGET> Binding<BEAN, NEWTARGET> withConverter(
                 Converter<TARGET, NEWTARGET> converter,
                 boolean resetNullRepresentation) {
             checkUnbound();
@@ -920,7 +916,7 @@ public class Binder<BEAN> implements Serializable {
      *
      * @see #bind(HasValue, SerializableFunction, SerializableBiConsumer)
      */
-    public <FIELDVALUE> Binding<BEAN, FIELDVALUE, FIELDVALUE> forField(
+    public <FIELDVALUE> Binding<BEAN, FIELDVALUE> forField(
             HasValue<FIELDVALUE> field) {
         Objects.requireNonNull(field, "field cannot be null");
         // clear previous errors for this field and any bean level validation
@@ -1139,7 +1135,7 @@ public class Binder<BEAN> implements Serializable {
         }
 
         // Store old bean values so we can restore them if validators fail
-        Map<Binding<BEAN, ?, ?>, Object> oldValues = new HashMap<>();
+        Map<Binding<BEAN, ?>, Object> oldValues = new HashMap<>();
         bindings.forEach(
                 binding -> oldValues.put(binding, binding.getter.apply(bean)));
 
@@ -1435,7 +1431,7 @@ public class Binder<BEAN> implements Serializable {
      *            the handler to notify of status changes, not null
      * @return the new incomplete binding
      */
-    protected <FIELDVALUE, TARGET> Binding<BEAN, FIELDVALUE, TARGET> createBinding(
+    protected <FIELDVALUE, TARGET> Binding<BEAN, TARGET> createBinding(
             HasValue<FIELDVALUE> field, Converter<FIELDVALUE, TARGET> converter,
             ValidationStatusHandler handler) {
         return new BindingImpl<>(this, field, converter, handler);
index 66e34eb6dd6f7661135c4c3c5ffb46dbd5d5b393..bbc4326b60fa9ed20f2cc0d35920e64fab0eaa55 100644 (file)
@@ -69,7 +69,7 @@ public class ValidationStatus<TARGET> implements Serializable {
 
     private final Status status;
     private final ValidationResult result;
-    private final Binding<?, ?, TARGET> binding;
+    private final Binding<?, TARGET> binding;
 
     /**
      * Convenience method for creating a {@link Status#UNRESOLVED} validation
@@ -83,7 +83,7 @@ public class ValidationStatus<TARGET> implements Serializable {
      *            status was reset
      */
     public static <TARGET> ValidationStatus<TARGET> createUnresolvedStatus(
-            Binding<?, ?, TARGET> source) {
+            Binding<?, TARGET> source) {
         return new ValidationStatus<>(source, Status.UNRESOLVED, null);
     }
 
@@ -96,7 +96,7 @@ public class ValidationStatus<TARGET> implements Serializable {
      * @param result
      *            the result of the validation
      */
-    public ValidationStatus(Binding<?, ?, TARGET> source,
+    public ValidationStatus(Binding<?, TARGET> source,
             ValidationResult result) {
         this(source, result.isError() ? Status.ERROR : Status.OK, result);
     }
@@ -114,7 +114,7 @@ public class ValidationStatus<TARGET> implements Serializable {
      * @param result
      *            the related result, may be {@code null}
      */
-    public ValidationStatus(Binding<?, ?, TARGET> source, Status status,
+    public ValidationStatus(Binding<?, TARGET> source, Status status,
             ValidationResult result) {
         Objects.requireNonNull(source, "Event source may not be null");
         Objects.requireNonNull(status, "Status may not be null");
@@ -177,7 +177,7 @@ public class ValidationStatus<TARGET> implements Serializable {
      *
      * @return the source binding
      */
-    public Binding<?, ?, TARGET> getBinding() {
+    public Binding<?, TARGET> getBinding() {
         return binding;
     }
 
index 14a6be0307b66fae5c59bcaf398f5e6915e9689b..5aafc475ef10a062c955f36fb63a5742ce355be0 100644 (file)
@@ -249,15 +249,14 @@ public class BinderBookOfVaadinTest {
         // Slider for integers between 1 and 10
         Slider salaryLevelField = new Slider("Salary level", 1, 10);
 
-        Binding<BookPerson, String, String> b1 = binder
-                .forField(yearOfBirthField);
-        Binding<BookPerson, String, Integer> b2 = b1.withConverter(
+        Binding<BookPerson, String> b1 = binder.forField(yearOfBirthField);
+        Binding<BookPerson, Integer> b2 = b1.withConverter(
                 new StringToIntegerConverter("Must enter a number"));
         b2.bind(BookPerson::getYearOfBirth, BookPerson::setYearOfBirth);
 
-        Binding<BookPerson, Double, Double> salaryBinding1 = binder
+        Binding<BookPerson, Double> salaryBinding1 = binder
                 .forField(salaryLevelField);
-        Binding<BookPerson, Double, Integer> salaryBinding2 = salaryBinding1
+        Binding<BookPerson, Integer> salaryBinding2 = salaryBinding1
                 .withConverter(Double::intValue, Integer::doubleValue);
         salaryBinding2.bind(BookPerson::getSalaryLevel,
                 BookPerson::setSalaryLevel);
@@ -305,8 +304,8 @@ public class BinderBookOfVaadinTest {
         DateField departing = new DateField("Departing");
         DateField returning = new DateField("Returning");
 
-        Binding<Trip, LocalDate, LocalDate> returnBinding = binder
-                .forField(returning).withValidator(
+        Binding<Trip, LocalDate> returnBinding = binder.forField(returning)
+                .withValidator(
                         returnDate -> !returnDate
                                 .isBefore(departing.getValue()),
                         "Cannot return before departing");
@@ -358,8 +357,8 @@ public class BinderBookOfVaadinTest {
         DateField departing = new DateField("Departing");
         DateField returning = new DateField("Returning");
 
-        Binding<Trip, LocalDate, LocalDate> returnBinding = binder
-                .forField(returning).withValidator(
+        Binding<Trip, LocalDate> returnBinding = binder.forField(returning)
+                .withValidator(
                         returnDate -> !returnDate
                                 .isBefore(departing.getValue()),
                         "Cannot return before departing");
index b3d6d62c0bfa3a1b559bd2ee3f32d8b9061a9f20..9ad8dca2c3ba5a52c4e9040ede148285c84f603e 100644 (file)
@@ -73,7 +73,7 @@ public class BinderConverterValidatorTest
 
     @Test
     public void bound_validatorsAreOK_noErrors() {
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
         binding.withValidator(Validator.alwaysPass()).bind(Person::getFirstName,
                 Person::setFirstName);
 
@@ -87,7 +87,7 @@ public class BinderConverterValidatorTest
     @SuppressWarnings("serial")
     @Test
     public void bound_validatorsFail_errors() {
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
         binding.withValidator(Validator.alwaysPass());
         String msg1 = "foo";
         String msg2 = "bar";
@@ -221,7 +221,7 @@ public class BinderConverterValidatorTest
         bean.setStatus("1");
         Binder<StatusBean> binder = new Binder<>();
 
-        Binding<StatusBean, String, String> binding = binder.forField(field)
+        Binding<StatusBean, String> binding = binder.forField(field)
                 .withConverter(presentation -> {
                     if (presentation.equals("OK")) {
                         return "1";
@@ -266,7 +266,7 @@ public class BinderConverterValidatorTest
     public void validate_failedBeanValidatorWithFieldValidator() {
         String msg = "foo";
 
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(new NotEmptyValidator<>(msg));
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -286,7 +286,7 @@ public class BinderConverterValidatorTest
     public void validate_failedBothBeanValidatorAndFieldValidator() {
         String msg1 = "foo";
 
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(new NotEmptyValidator<>(msg1));
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -322,7 +322,7 @@ public class BinderConverterValidatorTest
     @Test
     public void binder_saveIfValid() {
         String msg1 = "foo";
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(new NotEmptyValidator<>(msg1));
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -554,11 +554,11 @@ public class BinderConverterValidatorTest
     public void save_validationErrors_exceptionContainsErrors()
             throws ValidationException {
         String msg = "foo";
-        Binding<Person, String, String> nameBinding = binder.forField(nameField)
+        Binding<Person, String> nameBinding = binder.forField(nameField)
                 .withValidator(new NotEmptyValidator<>(msg));
         nameBinding.bind(Person::getFirstName, Person::setFirstName);
 
-        Binding<Person, String, Integer> ageBinding = binder.forField(ageField)
+        Binding<Person, Integer> ageBinding = binder.forField(ageField)
                 .withConverter(stringToInteger).withValidator(notNegative);
         ageBinding.bind(Person::getAge, Person::setAge);
 
@@ -585,7 +585,7 @@ public class BinderConverterValidatorTest
 
     @Test
     public void binderBindAndLoad_clearsErrors() {
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty);
         binding.bind(Person::getFirstName, Person::setFirstName);
         binder.withValidator(bean -> !bean.getFirstName().contains("error"),
@@ -621,8 +621,8 @@ public class BinderConverterValidatorTest
         // bind a new field that has invalid value in bean
         TextField lastNameField = new TextField();
         person.setLastName("");
-        Binding<Person, String, String> binding2 = binder
-                .forField(lastNameField).withValidator(notEmpty);
+        Binding<Person, String> binding2 = binder.forField(lastNameField)
+                .withValidator(notEmpty);
         binding2.bind(Person::getLastName, Person::setLastName);
 
         // should not have error shown
@@ -663,12 +663,11 @@ public class BinderConverterValidatorTest
         final SerializablePredicate<String> lengthPredicate = v -> v
                 .length() > 2;
 
-        Binding<Person, String, String> firstNameBinding = binder
-                .forField(nameField).withValidator(lengthPredicate, "length");
+        Binding<Person, String> firstNameBinding = binder.forField(nameField)
+                .withValidator(lengthPredicate, "length");
         firstNameBinding.bind(Person::getFirstName, Person::setFirstName);
 
-        Binding<Person, String, String> lastNameBinding = binder
-                .forField(lastNameField)
+        Binding<Person, String> lastNameBinding = binder.forField(lastNameField)
                 .withValidator(v -> !nameField.getValue().isEmpty()
                         || lengthPredicate.test(v), "err")
                 .withValidator(lengthPredicate, "length");
index 1e03a22fd772d60e3759df7238a7297f44e8d2d1..e453e68482d96f08b164c4033afbc866e150d329 100644 (file)
@@ -45,7 +45,7 @@ public class BinderStatusChangeTest
     public void bindBinding_unbound_eventWhenBoundEndnoEventsBeforeBound() {
         binder.addStatusChangeListener(this::statusChanged);
 
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
 
         nameField.setValue("");
         Assert.assertNull(event.get());
@@ -377,7 +377,7 @@ public class BinderStatusChangeTest
 
     @Test
     public void validateBinding_noValidationErrors_statusEventWithoutErrors() {
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
         binding.bind(Person::getFirstName, Person::setFirstName);
         binder.forField(ageField)
                 .withConverter(new StringToIntegerConverter(""))
@@ -393,7 +393,7 @@ public class BinderStatusChangeTest
 
     @Test
     public void validateBinding_validationErrors_statusEventWithError() {
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(name -> false, "");
         binding.bind(Person::getFirstName, Person::setFirstName);
         binder.forField(ageField)
index 0ad86b9f193c6e891b30a9d2bc4b89ab422aa99a..7f2353a448bcf2aefbf069cfac31ad666ccc9c8b 100644 (file)
@@ -331,7 +331,7 @@ public class BinderTest extends BinderTestBase<Binder<Person>, Person> {
         TextField textField = new TextField();
         Assert.assertFalse(textField.isRequiredIndicatorVisible());
 
-        Binding<Person, String, String> binding = binder.forField(textField);
+        Binding<Person, String> binding = binder.forField(textField);
         Assert.assertFalse(textField.isRequiredIndicatorVisible());
 
         binding.setRequired("foobar");
@@ -357,7 +357,7 @@ public class BinderTest extends BinderTestBase<Binder<Person>, Person> {
         textField.setLocale(Locale.CANADA);
         Assert.assertFalse(textField.isRequiredIndicatorVisible());
 
-        Binding<Person, String, String> binding = binder.forField(textField);
+        Binding<Person, String> binding = binder.forField(textField);
         Assert.assertFalse(textField.isRequiredIndicatorVisible());
         AtomicInteger invokes = new AtomicInteger();
 
index 6cef908aef76c06b1e5a957cfd1a20e9d0a224a4..d901ee00d8b5940e3199d44383ed5eaed1275862 100644 (file)
@@ -48,7 +48,7 @@ public class BinderValidationStatusTest
     @Test
     public void bindingWithStatusHandler_handlerGetsEvents() {
         AtomicReference<ValidationStatus<?>> statusCapture = new AtomicReference<>();
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty).withValidationStatusHandler(evt -> {
                     Assert.assertNull(statusCapture.get());
                     statusCapture.set(evt);
@@ -84,7 +84,7 @@ public class BinderValidationStatusTest
 
     @Test
     public void bindingWithStatusHandler_defaultStatusHandlerIsReplaced() {
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty).withValidationStatusHandler(evt -> {
                 });
         binding.bind(Person::getFirstName, Person::setFirstName);
@@ -105,7 +105,7 @@ public class BinderValidationStatusTest
     public void bindingWithStatusLabel_labelIsUpdatedAccordingStatus() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty).withStatusLabel(label);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -132,7 +132,7 @@ public class BinderValidationStatusTest
     public void bindingWithStatusLabel_defaultStatusHandlerIsReplaced() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty).withStatusLabel(label);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -150,7 +150,7 @@ public class BinderValidationStatusTest
 
     @Test(expected = IllegalStateException.class)
     public void bindingWithStatusHandler_addAfterBound() {
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -161,7 +161,7 @@ public class BinderValidationStatusTest
     public void bindingWithStatusLabel_addAfterBound() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -172,7 +172,7 @@ public class BinderValidationStatusTest
     public void bindingWithStatusLabel_setAfterHandler() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
 
         binding.withValidationStatusHandler(NOOP);
 
@@ -183,7 +183,7 @@ public class BinderValidationStatusTest
     public void bindingWithStatusHandler_setAfterLabel() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
 
         binding.withStatusLabel(label);
 
@@ -193,7 +193,7 @@ public class BinderValidationStatusTest
     @Test(expected = IllegalStateException.class)
     public void bindingWithStatusHandler_setAfterOtherHandler() {
 
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
 
         binding.withValidationStatusHandler(NOOP);
 
@@ -392,7 +392,7 @@ public class BinderValidationStatusTest
 
     @Test
     public void binderWithStatusHandler_defaultStatusHandlerIsReplaced() {
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty).withValidationStatusHandler(evt -> {
                 });
         binding.bind(Person::getFirstName, Person::setFirstName);
@@ -413,7 +413,7 @@ public class BinderValidationStatusTest
     public void binderWithStatusLabel_defaultStatusHandlerIsReplaced() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty).withStatusLabel(label);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -431,7 +431,7 @@ public class BinderValidationStatusTest
 
     @Test(expected = IllegalStateException.class)
     public void binderWithStatusHandler_addAfterBound() {
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -442,7 +442,7 @@ public class BinderValidationStatusTest
     public void binderWithStatusLabel_addAfterBound() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField)
+        Binding<Person, String> binding = binder.forField(nameField)
                 .withValidator(notEmpty);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
@@ -453,7 +453,7 @@ public class BinderValidationStatusTest
     public void binderWithStatusLabel_setAfterHandler() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
         binder.setValidationStatusHandler(event -> {
@@ -466,7 +466,7 @@ public class BinderValidationStatusTest
     public void binderWithStatusHandler_setAfterLabel() {
         Label label = new Label();
 
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
         binder.setStatusLabel(label);
@@ -484,7 +484,7 @@ public class BinderValidationStatusTest
     public void binderWithStatusHandler_replaceHandler() {
         AtomicReference<BinderValidationStatus<?>> capture = new AtomicReference<>();
 
-        Binding<Person, String, String> binding = binder.forField(nameField);
+        Binding<Person, String> binding = binder.forField(nameField);
         binding.bind(Person::getFirstName, Person::setFirstName);
 
         binder.setValidationStatusHandler(results -> {