]> source.dussan.org Git - vaadin-framework.git/commitdiff
Rename com.vaadin.data.util.converter to com.vaadin.data.converter
authorPekka Hyvönen <pekka@vaadin.com>
Wed, 14 Dec 2016 15:00:11 +0000 (17:00 +0200)
committerIlia Motornyi <elmot@vaadin.com>
Wed, 14 Dec 2016 15:00:11 +0000 (17:00 +0200)
72 files changed:
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/Converter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/ErrorMessageProvider.java
server/src/main/java/com/vaadin/data/Validator.java
server/src/main/java/com/vaadin/data/ValueContext.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/AbstractStringToNumberConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/DateToLongConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/DateToSqlDateConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToBigDecimalConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToBigIntegerConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToBooleanConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToDateConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToDoubleConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToFloatConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToIntegerConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/converter/StringToLongConverter.java [new file with mode: 0644]
server/src/main/java/com/vaadin/data/util/converter/AbstractStringToNumberConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/Converter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/DateToLongConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/DateToSqlDateConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToBigDecimalConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToBigIntegerConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToBooleanConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToDateConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToDoubleConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToFloatConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToIntegerConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/StringToLongConverter.java [deleted file]
server/src/main/java/com/vaadin/data/util/converter/ValueContext.java [deleted file]
server/src/main/java/com/vaadin/data/validator/BeanValidator.java
server/src/main/java/com/vaadin/data/validator/RangeValidator.java
server/src/main/java/com/vaadin/data/validator/RegexpValidator.java
server/src/main/java/com/vaadin/data/validator/StringLengthValidator.java
server/src/main/java/com/vaadin/ui/AbstractDateField.java
server/src/main/java/com/vaadin/ui/declarative/DesignAttributeHandler.java
server/src/main/java/com/vaadin/ui/declarative/DesignFormatter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignDateConverter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignEnumConverter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignLocalDateConverter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignObjectConverter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignResourceConverter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignShortcutActionConverter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignTimeZoneConverter.java
server/src/main/java/com/vaadin/ui/declarative/converters/DesignToStringConverter.java
server/src/test/java/com/vaadin/data/BeanBinderInstanceFieldTest.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/BinderMultiSelectTest.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/BinderTestBase.java
server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinderTest.java
server/src/test/java/com/vaadin/data/ValidatorTest.java
server/src/test/java/com/vaadin/data/ValueContextTest.java
server/src/test/java/com/vaadin/data/validator/NotEmptyValidator.java
server/src/test/java/com/vaadin/data/validator/NotEmptyValidatorTest.java
server/src/test/java/com/vaadin/data/validator/ValidatorTestBase.java
server/src/test/java/com/vaadin/tests/data/converter/AbstractConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/AbstractStringConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/ConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/DateToLongConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/DateToSqlDateConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToBigDecimalConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToBigIntegerConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToBooleanConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToDateConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToDoubleConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToFloatConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToIntegerConverterTest.java
server/src/test/java/com/vaadin/tests/data/converter/StringToLongConverterTest.java
uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java

index 64beee52647742ac0e30875c1f48ce7808d12dd6..690c2eb849abbe7955778af64a5706b18de7fa6a 100644 (file)
@@ -35,7 +35,6 @@ import java.util.function.BiConsumer;
 import com.googlecode.gentyref.GenericTypeReflector;
 import com.vaadin.annotations.PropertyId;
 import com.vaadin.data.util.BeanUtil;
-import com.vaadin.data.util.converter.Converter;
 import com.vaadin.data.validator.BeanValidator;
 import com.vaadin.server.SerializableBiConsumer;
 import com.vaadin.server.SerializableFunction;
index c419caf7b0b7058fd0bf0742327fa5e4cb73662f..2d0ec613e0cf14db91945865a15c4c839730a238 100644 (file)
@@ -31,9 +31,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import com.vaadin.data.HasValue.ValueChangeEvent;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.converter.StringToIntegerConverter;
 import com.vaadin.event.EventRouter;
 import com.vaadin.server.ErrorMessage;
 import com.vaadin.server.SerializableBiConsumer;
diff --git a/server/src/main/java/com/vaadin/data/Converter.java b/server/src/main/java/com/vaadin/data/Converter.java
new file mode 100644 (file)
index 0000000..cf59a0f
--- /dev/null
@@ -0,0 +1,178 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data;
+
+import java.io.Serializable;
+import java.util.function.Function;
+
+import com.vaadin.server.SerializableFunction;
+
+/**
+ * Interface that implements conversion between a model and a presentation type.
+ * <p>
+ * Converters must not have any side effects (never update UI from inside a
+ * converter).
+ *
+ * @param <PRESENTATION>
+ *            The presentation type.
+ * @param <MODEL>
+ *            The model type.
+ * @author Vaadin Ltd.
+ * @since 8.0
+ */
+public interface Converter<PRESENTATION, MODEL> extends Serializable {
+
+    /**
+     * Converts the given value from model type to presentation type.
+     * <p>
+     * A converter can optionally use locale to do the conversion.
+     *
+     * @param value
+     *            The value to convert. Can be null
+     * @param context
+     *            The value context for the conversion.
+     * @return The converted value compatible with the source type
+     */
+    public Result<MODEL> convertToModel(PRESENTATION value,
+            ValueContext context);
+
+    /**
+     * Converts the given value from presentation type to model type.
+     * <p>
+     * A converter can optionally use locale to do the conversion.
+     *
+     * @param value
+     *            The value to convert. Can be null
+     * @param context
+     *            The value context for the conversion.
+     * @return The converted value compatible with the source type
+     */
+    public PRESENTATION convertToPresentation(MODEL value,
+            ValueContext context);
+
+    /**
+     * Returns a converter that returns its input as-is in both directions.
+     *
+     * @param <T>
+     *            the input and output type
+     * @return an identity converter
+     */
+    public static <T> Converter<T, T> identity() {
+        return from(t -> Result.ok(t), t -> t);
+    }
+
+    /**
+     * Constructs a converter from two functions. Any {@code Exception}
+     * instances thrown from the {@code toModel} function are converted into
+     * error-bearing {@code Result} objects using the given {@code onError}
+     * function.
+     *
+     * @param <P>
+     *            the presentation type
+     * @param <M>
+     *            the model type
+     * @param toModel
+     *            the function to convert to model
+     * @param toPresentation
+     *            the function to convert to presentation
+     * @param onError
+     *            the function to provide error messages
+     * @return the new converter
+     *
+     * @see Result
+     * @see Function
+     */
+    public static <P, M> Converter<P, M> from(
+            SerializableFunction<P, M> toModel,
+            SerializableFunction<M, P> toPresentation,
+            SerializableFunction<Exception, String> onError) {
+
+        return from(val -> Result.of(() -> toModel.apply(val), onError),
+                toPresentation);
+    }
+
+    /**
+     * Constructs a converter from a filter and a function.
+     *
+     * @param <P>
+     *            the presentation type
+     * @param <M>
+     *            the model type
+     * @param toModel
+     *            the function to convert to model
+     * @param toPresentation
+     *            the function to convert to presentation
+     * @return the new converter
+     *
+     * @see Function
+     */
+    public static <P, M> Converter<P, M> from(
+            SerializableFunction<P, Result<M>> toModel,
+            SerializableFunction<M, P> toPresentation) {
+        return new Converter<P, M>() {
+
+            @Override
+            public Result<M> convertToModel(P value, ValueContext context) {
+                return toModel.apply(value);
+            }
+
+            @Override
+            public P convertToPresentation(M value, ValueContext context) {
+                return toPresentation.apply(value);
+            }
+        };
+    }
+
+    /**
+     * Returns a converter that chains together this converter with the given
+     * type-compatible converter.
+     * <p>
+     * The chained converters will form a new converter capable of converting
+     * from the presentation type of this converter to the model type of the
+     * other converter.
+     * <p>
+     * In most typical cases you should not need this method but instead only
+     * need to define one converter for a binding using
+     * {@link BindingBuilder#withConverter(Converter)}.
+     *
+     * @param <T>
+     *            the model type of the resulting converter
+     * @param other
+     *            the converter to chain, not null
+     * @return a chained converter
+     */
+    public default <T> Converter<PRESENTATION, T> chain(
+            Converter<MODEL, T> other) {
+        return new Converter<PRESENTATION, T>() {
+            @Override
+            public Result<T> convertToModel(PRESENTATION value,
+                    ValueContext context) {
+                Result<MODEL> model = Converter.this.convertToModel(value,
+                        context);
+                return model.flatMap(v -> other.convertToModel(v, context));
+            }
+
+            @Override
+            public PRESENTATION convertToPresentation(T value,
+                    ValueContext context) {
+                MODEL model = other.convertToPresentation(value, context);
+                return Converter.this.convertToPresentation(model, context);
+            }
+        };
+    }
+
+}
index 71a6723634cfb8097a5ae82a9bbb613a378032e8..0c65f0f8c2b8bceb3538112ca0e1d5cc30d1dd98 100644 (file)
@@ -15,7 +15,6 @@
  */
 package com.vaadin.data;
 
-import com.vaadin.data.util.converter.ValueContext;
 import com.vaadin.server.SerializableFunction;
 
 /**
index 33da20b945e19a43a8ad49e48a17d70027d685dc..8fc5b0785e02e6ae4d73b434cfb1e4d788df3af2 100644 (file)
@@ -20,7 +20,6 @@ import java.io.Serializable;
 import java.util.Objects;
 import java.util.function.BiFunction;
 
-import com.vaadin.data.util.converter.ValueContext;
 import com.vaadin.server.SerializablePredicate;
 
 /**
diff --git a/server/src/main/java/com/vaadin/data/ValueContext.java b/server/src/main/java/com/vaadin/data/ValueContext.java
new file mode 100644 (file)
index 0000000..d333db6
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.data;
+
+import java.io.Serializable;
+import java.util.Locale;
+import java.util.Objects;
+import java.util.Optional;
+
+import com.vaadin.ui.Component;
+import com.vaadin.ui.UI;
+
+/**
+ * Value context for {@code Converter}s. Contains relevant information for
+ * converting values.
+ *
+ * @author Vaadin Ltd.
+ * @since
+ */
+public class ValueContext implements Serializable {
+
+    private final Component component;
+    private final Locale locale;
+
+    /**
+     * Constructor for {@code ValueContext} without a {@code Locale}.
+     */
+    public ValueContext() {
+        this.component = null;
+        this.locale = findLocale();
+    }
+
+    /**
+     * Constructor for {@code ValueContext} without a {@code Component}.
+     *
+     * @param locale
+     *            The locale used with conversion. Can be null.
+     */
+    public ValueContext(Locale locale) {
+        this.component = null;
+        this.locale = locale;
+    }
+
+    /**
+     * Constructor for {@code ValueContext}.
+     *
+     * @param component
+     *            The component related to current value. Can be null.
+     */
+    public ValueContext(Component component) {
+        Objects.requireNonNull(component,
+                "Component can't be null in ValueContext construction");
+        this.component = component;
+        this.locale = findLocale();
+    }
+
+    private Locale findLocale() {
+        Locale l = null;
+        if (component != null) {
+            l = component.getLocale();
+        }
+        if (l == null && UI.getCurrent() != null) {
+            l = UI.getCurrent().getLocale();
+        }
+        if (l == null) {
+            l = Locale.getDefault();
+        }
+        return l;
+    }
+
+    /**
+     * Returns an {@code Optional} for the {@code Component} related to value
+     * conversion.
+     *
+     * @return the optional of component
+     */
+    public Optional<Component> getComponent() {
+        return Optional.ofNullable(component);
+    }
+
+    /**
+     * Returns an {@code Optional} for the {@code Locale} used in the value
+     * conversion.
+     *
+     * @return the optional of locale
+     */
+    public Optional<Locale> getLocale() {
+        return Optional.ofNullable(locale);
+    }
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/AbstractStringToNumberConverter.java b/server/src/main/java/com/vaadin/data/converter/AbstractStringToNumberConverter.java
new file mode 100644 (file)
index 0000000..2aefb43
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.text.NumberFormat;
+import java.text.ParsePosition;
+import java.util.Locale;
+
+import com.vaadin.data.Converter;
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from the number type T to {@link String} and back.
+ * Uses the given locale and {@link NumberFormat} for formatting and parsing.
+ * Automatically trims the input string, removing any leading and trailing white
+ * space.
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public abstract class AbstractStringToNumberConverter<T>
+        implements Converter<String, T> {
+
+    private final String errorMessage;
+
+    /**
+     * Creates a new converter instance with the given error message.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    protected AbstractStringToNumberConverter(String errorMessage) {
+        this.errorMessage = errorMessage;
+    }
+
+    /**
+     * Returns the format used by {@link #convertToPresentation(Object, Locale)}
+     * and {@link #convertToModel(Object, Locale)}.
+     *
+     * @param locale
+     *            The locale to use
+     * @return A NumberFormat instance
+     */
+    protected NumberFormat getFormat(Locale locale) {
+        if (locale == null) {
+            locale = Locale.getDefault();
+        }
+
+        return NumberFormat.getNumberInstance(locale);
+    }
+
+    /**
+     * Convert the value to a Number using the given locale and
+     * {@link #getFormat(Locale)}.
+     *
+     * @param value
+     *            The value to convert
+     * @param locale
+     *            The locale to use for conversion
+     * @return The converted value
+     */
+    protected Result<Number> convertToNumber(String value, Locale locale) {
+        if (value == null) {
+            return Result.ok(null);
+        }
+
+        // Remove leading and trailing white space
+        value = value.trim();
+
+        // Parse and detect errors. If the full string was not used, it is
+        // an error.
+        ParsePosition parsePosition = new ParsePosition(0);
+        Number parsedValue = getFormat(locale).parse(value, parsePosition);
+        if (parsePosition.getIndex() != value.length()) {
+            return Result.error(getErrorMessage());
+        }
+
+        if (parsedValue == null) {
+            // Convert "" to null
+            return Result.ok(null);
+        }
+
+        return Result.ok(parsedValue);
+    }
+
+    /**
+     * Gets the error message to use when conversion fails.
+     *
+     * @return the error message
+     */
+    protected String getErrorMessage() {
+        return errorMessage;
+    }
+
+    @Override
+    public String convertToPresentation(T value, ValueContext context) {
+        if (value == null) {
+            return null;
+        }
+
+        return getFormat(context.getLocale().orElse(null)).format(value);
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/DateToLongConverter.java b/server/src/main/java/com/vaadin/data/converter/DateToLongConverter.java
new file mode 100644 (file)
index 0000000..cdb40ec
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.util.Date;
+
+import com.vaadin.data.Converter;
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link Long} to {@link Date} and back.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class DateToLongConverter implements Converter<Date, Long> {
+
+    @Override
+    public Result<Long> convertToModel(Date value, ValueContext context) {
+        if (value == null) {
+            return Result.ok(null);
+        }
+
+        return Result.ok(value.getTime());
+    }
+
+    @Override
+    public Date convertToPresentation(Long value, ValueContext context) {
+        if (value == null) {
+            return null;
+        }
+
+        return new Date(value);
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/DateToSqlDateConverter.java b/server/src/main/java/com/vaadin/data/converter/DateToSqlDateConverter.java
new file mode 100644 (file)
index 0000000..7e899a1
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+/**
+ *
+ */
+package com.vaadin.data.converter;
+
+import java.util.Date;
+
+import com.vaadin.data.Converter;
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * Converter for handling conversion between {@link java.util.Date} and
+ * {@link java.sql.Date}. This is used when a PopupDateField or InlineDateField
+ * is connected to a java.sql.Date property. Note that information (time
+ * information) is lost when converting from {@link java.util.Date} to
+ * {@link java.sql.Date}.
+ *
+ * @since 8.0
+ * @author Vaadin Ltd
+ */
+public class DateToSqlDateConverter implements Converter<Date, java.sql.Date> {
+
+    @Override
+    public Result<java.sql.Date> convertToModel(Date value,
+            ValueContext context) {
+        if (value == null) {
+            return Result.ok(null);
+        }
+
+        return Result.ok(new java.sql.Date(value.getTime()));
+    }
+
+    @Override
+    public Date convertToPresentation(java.sql.Date value,
+            ValueContext context) {
+        if (value == null) {
+            return null;
+        }
+
+        return new Date(value.getTime());
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToBigDecimalConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToBigDecimalConverter.java
new file mode 100644 (file)
index 0000000..c07db5e
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.data.converter;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.Locale;
+
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link String} to {@link BigDecimal} and back.
+ * Uses the given locale and a {@link NumberFormat} instance for formatting and
+ * parsing.
+ * <p>
+ * Leading and trailing white spaces are ignored when converting from a String.
+ * </p>
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToBigDecimalConverter
+        extends AbstractStringToNumberConverter<BigDecimal> {
+
+    /**
+     * Creates a new converter instance with the given error message.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    public StringToBigDecimalConverter(String errorMessage) {
+        super(errorMessage);
+    }
+
+    @Override
+    protected NumberFormat getFormat(Locale locale) {
+        NumberFormat numberFormat = super.getFormat(locale);
+        if (numberFormat instanceof DecimalFormat) {
+            ((DecimalFormat) numberFormat).setParseBigDecimal(true);
+        }
+
+        return numberFormat;
+    }
+
+    @Override
+    public Result<BigDecimal> convertToModel(String value,
+            ValueContext context) {
+        return convertToNumber(value, context.getLocale().orElse(null))
+                .map(number -> (BigDecimal) number);
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToBigIntegerConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToBigIntegerConverter.java
new file mode 100644 (file)
index 0000000..51895ca
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.data.converter;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.Locale;
+
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link String} to {@link BigInteger} and back.
+ * Uses the given locale and a {@link NumberFormat} instance for formatting and
+ * parsing.
+ * <p>
+ * Leading and trailing white spaces are ignored when converting from a String.
+ * </p>
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToBigIntegerConverter
+        extends AbstractStringToNumberConverter<BigInteger> {
+    /**
+     * Creates a new converter instance with the given error message.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    public StringToBigIntegerConverter(String errorMessage) {
+        super(errorMessage);
+    }
+
+    @Override
+    protected NumberFormat getFormat(Locale locale) {
+        NumberFormat numberFormat = super.getFormat(locale);
+        if (numberFormat instanceof DecimalFormat) {
+            ((DecimalFormat) numberFormat).setParseBigDecimal(true);
+        }
+
+        return numberFormat;
+    }
+
+    @Override
+    public Result<BigInteger> convertToModel(String value,
+            ValueContext context) {
+        return convertToNumber(value, context.getLocale().orElse(null))
+                .map(number -> {
+                    if (number == null) {
+                        return null;
+                    } else {
+                        return ((BigDecimal) number).toBigInteger();
+                    }
+                });
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToBooleanConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToBooleanConverter.java
new file mode 100644 (file)
index 0000000..67dca5c
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.util.Locale;
+
+import com.vaadin.data.Converter;
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link String} to {@link Boolean} and back.
+ * The String representation is given by {@link Boolean#toString()} or provided
+ * in constructor {@link #StringToBooleanConverter(String, String)}.
+ * <p>
+ * Leading and trailing white spaces are ignored when converting from a String.
+ * </p>
+ * <p>
+ * For language-dependent representation, subclasses should overwrite
+ * {@link #getFalseString(Locale)} and {@link #getTrueString(Locale)}
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToBooleanConverter implements Converter<String, Boolean> {
+
+    private final String trueString;
+
+    private final String falseString;
+
+    private String errorMessage;
+
+    /**
+     * Creates converter with default string representations - "true" and
+     * "false".
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    public StringToBooleanConverter(String errorMessage) {
+        this(errorMessage, Boolean.TRUE.toString(), Boolean.FALSE.toString());
+    }
+
+    /**
+     * Creates converter with custom string representation.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     * @param falseString
+     *            string representation for <code>false</code>
+     * @param trueString
+     *            string representation for <code>true</code>
+     */
+    public StringToBooleanConverter(String errorMessage, String trueString,
+            String falseString) {
+        this.errorMessage = errorMessage;
+        this.trueString = trueString;
+        this.falseString = falseString;
+    }
+
+    @Override
+    public Result<Boolean> convertToModel(String value, ValueContext context) {
+        if (value == null) {
+            return Result.ok(null);
+        }
+
+        // Remove leading and trailing white space
+        value = value.trim();
+
+        Locale locale = context.getLocale().orElse(null);
+        if (getTrueString(locale).equals(value)) {
+            return Result.ok(true);
+        } else if (getFalseString(locale).equals(value)) {
+            return Result.ok(false);
+        } else if (value.isEmpty()) {
+            return Result.ok(null);
+        } else {
+            return Result.error(errorMessage);
+        }
+    }
+
+    @Override
+    public String convertToPresentation(Boolean value, ValueContext context) {
+        if (value == null) {
+            return null;
+        }
+        Locale locale = context.getLocale().orElse(null);
+        if (value) {
+            return getTrueString(locale);
+        } else {
+            return getFalseString(locale);
+        }
+    }
+
+    /**
+     * Gets the locale-depended string representation for false. Default is
+     * locale-independent value provided by {@link #getFalseString()}
+     *
+     * @param locale
+     *            to be used
+     * @return the string representation for false
+     */
+    protected String getFalseString(Locale locale) {
+        return falseString;
+    }
+
+    /**
+     * Gets the locale-depended string representation for true. Default is
+     * locale-independent value provided by {@link #getTrueString()}
+     *
+     * @param locale
+     *            to be used
+     * @return the string representation for true
+     */
+    protected String getTrueString(Locale locale) {
+        return trueString;
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToDateConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToDateConverter.java
new file mode 100644 (file)
index 0000000..790d3cb
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.text.DateFormat;
+import java.text.ParsePosition;
+import java.util.Date;
+import java.util.Locale;
+
+import com.vaadin.data.Converter;
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link Date} to {@link String} and back. Uses
+ * the given locale and {@link DateFormat} for formatting and parsing.
+ * <p>
+ * Leading and trailing white spaces are ignored when converting from a String.
+ * </p>
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToDateConverter implements Converter<String, Date> {
+
+    /**
+     * Returns the format used by {@link #convertToPresentation(Date, Locale)}
+     * and {@link #convertToModel(String, Locale)}.
+     *
+     * @param locale
+     *            The locale to use
+     * @return A DateFormat instance
+     */
+    protected DateFormat getFormat(Locale locale) {
+        if (locale == null) {
+            locale = Locale.getDefault();
+        }
+
+        DateFormat format = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
+                DateFormat.MEDIUM, locale);
+        format.setLenient(false);
+        return format;
+    }
+
+    @Override
+    public Result<Date> convertToModel(String value, ValueContext context) {
+        if (value == null) {
+            return Result.ok(null);
+        }
+
+        // Remove leading and trailing white space
+        value = value.trim();
+
+        ParsePosition parsePosition = new ParsePosition(0);
+        Date parsedValue = getFormat(context.getLocale().orElse(null))
+                .parse(value, parsePosition);
+        if (parsePosition.getIndex() != value.length()) {
+            return Result.error("Could not convert '" + value);
+        }
+
+        return Result.ok(parsedValue);
+    }
+
+    @Override
+    public String convertToPresentation(Date value, ValueContext context) {
+        if (value == null) {
+            return null;
+        }
+
+        return getFormat(context.getLocale().orElse(null)).format(value);
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToDoubleConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToDoubleConverter.java
new file mode 100644 (file)
index 0000000..a14e33b
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.text.NumberFormat;
+import java.util.Locale;
+
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link String} to {@link Double} and back.
+ * Uses the given locale and a {@link NumberFormat} instance for formatting and
+ * parsing.
+ * <p>
+ * Leading and trailing white spaces are ignored when converting from a String.
+ * </p>
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToDoubleConverter
+        extends AbstractStringToNumberConverter<Double> {
+
+    /**
+     * Creates a new converter instance with the given error message.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    public StringToDoubleConverter(String errorMessage) {
+        super(errorMessage);
+    }
+
+    @Override
+    public Result<Double> convertToModel(String value, ValueContext context) {
+        Result<Number> n = convertToNumber(value,
+                context.getLocale().orElse(null));
+
+        return n.map(number -> {
+            if (number == null) {
+                return null;
+            } else {
+                return number.doubleValue();
+            }
+        });
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToFloatConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToFloatConverter.java
new file mode 100644 (file)
index 0000000..2db2654
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.text.NumberFormat;
+import java.util.Locale;
+
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link String} to {@link Float} and back. Uses
+ * the given locale and a {@link NumberFormat} instance for formatting and
+ * parsing.
+ * <p>
+ * Leading and trailing white spaces are ignored when converting from a String.
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToFloatConverter
+        extends AbstractStringToNumberConverter<Float> {
+
+    /**
+     * Creates a new converter instance with the given error message.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    public StringToFloatConverter(String errorMessage) {
+        super(errorMessage);
+    }
+
+    @Override
+    public Result<Float> convertToModel(String value, ValueContext context) {
+        Result<Number> n = convertToNumber(value,
+                context.getLocale().orElse(null));
+
+        return n.map(number -> {
+            if (number == null) {
+                return null;
+            } else {
+                return number.floatValue();
+            }
+        });
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToIntegerConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToIntegerConverter.java
new file mode 100644 (file)
index 0000000..c54903e
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.text.NumberFormat;
+import java.util.Locale;
+
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link String} to {@link Integer} and back.
+ * Uses the given locale and a {@link NumberFormat} instance for formatting and
+ * parsing.
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToIntegerConverter
+        extends AbstractStringToNumberConverter<Integer> {
+
+    /**
+     * Creates a new converter instance with the given error message.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    public StringToIntegerConverter(String errorMessage) {
+        super(errorMessage);
+    }
+
+    /**
+     * Returns the format used by
+     * {@link #convertToPresentation(Integer, Locale)} and
+     * {@link #convertToModel(String, Locale)}.
+     *
+     * @param locale
+     *            The locale to use
+     * @return A NumberFormat instance
+     */
+    @Override
+    protected NumberFormat getFormat(Locale locale) {
+        if (locale == null) {
+            locale = Locale.getDefault();
+        }
+        return NumberFormat.getIntegerInstance(locale);
+    }
+
+    @Override
+    public Result<Integer> convertToModel(String value, ValueContext context) {
+        Result<Number> n = convertToNumber(value,
+                context.getLocale().orElse(null));
+        return n.flatMap(number -> {
+            if (number == null) {
+                return Result.ok(null);
+            } else {
+                int intValue = number.intValue();
+                if (intValue == number.longValue()) {
+                    // If the value of n is outside the range of long, the
+                    // return value of longValue() is either Long.MIN_VALUE or
+                    // Long.MAX_VALUE. The/ above comparison promotes int to
+                    // long and thus does not need to consider wrap-around.
+                    return Result.ok(intValue);
+                } else {
+                    return Result.error(getErrorMessage());
+                }
+            }
+        });
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/converter/StringToLongConverter.java b/server/src/main/java/com/vaadin/data/converter/StringToLongConverter.java
new file mode 100644 (file)
index 0000000..8ddacde
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.data.converter;
+
+import java.text.NumberFormat;
+import java.util.Locale;
+
+import com.vaadin.data.Result;
+import com.vaadin.data.ValueContext;
+
+/**
+ * A converter that converts from {@link String} to {@link Long} and back. Uses
+ * the given locale and a {@link NumberFormat} instance for formatting and
+ * parsing.
+ * <p>
+ * Override and overwrite {@link #getFormat(Locale)} to use a different format.
+ * </p>
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
+public class StringToLongConverter
+        extends AbstractStringToNumberConverter<Long> {
+
+    /**
+     * Creates a new converter instance with the given error message.
+     *
+     * @param errorMessage
+     *            the error message to use if conversion fails
+     */
+    public StringToLongConverter(String errorMessage) {
+        super(errorMessage);
+    }
+
+    /**
+     * Returns the format used by {@link #convertToPresentation(Long, Locale)}
+     * and {@link #convertToModel(String, Locale)}.
+     *
+     * @param locale
+     *            The locale to use
+     * @return A NumberFormat instance
+     */
+    @Override
+    protected NumberFormat getFormat(Locale locale) {
+        if (locale == null) {
+            locale = Locale.getDefault();
+        }
+        return NumberFormat.getIntegerInstance(locale);
+    }
+
+    @Override
+    public Result<Long> convertToModel(String value, ValueContext context) {
+        Result<Number> n = convertToNumber(value,
+                context.getLocale().orElse(null));
+        return n.map(number -> {
+            if (number == null) {
+                return null;
+            } else {
+                return number.longValue();
+            }
+        });
+    }
+
+}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/AbstractStringToNumberConverter.java b/server/src/main/java/com/vaadin/data/util/converter/AbstractStringToNumberConverter.java
deleted file mode 100644 (file)
index e7f4476..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.text.NumberFormat;
-import java.text.ParsePosition;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from the number type T to {@link String} and back.
- * Uses the given locale and {@link NumberFormat} for formatting and parsing.
- * Automatically trims the input string, removing any leading and trailing white
- * space.
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public abstract class AbstractStringToNumberConverter<T>
-        implements Converter<String, T> {
-
-    private final String errorMessage;
-
-    /**
-     * Creates a new converter instance with the given error message.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    protected AbstractStringToNumberConverter(String errorMessage) {
-        this.errorMessage = errorMessage;
-    }
-
-    /**
-     * Returns the format used by {@link #convertToPresentation(Object, Locale)}
-     * and {@link #convertToModel(Object, Locale)}.
-     *
-     * @param locale
-     *            The locale to use
-     * @return A NumberFormat instance
-     */
-    protected NumberFormat getFormat(Locale locale) {
-        if (locale == null) {
-            locale = Locale.getDefault();
-        }
-
-        return NumberFormat.getNumberInstance(locale);
-    }
-
-    /**
-     * Convert the value to a Number using the given locale and
-     * {@link #getFormat(Locale)}.
-     *
-     * @param value
-     *            The value to convert
-     * @param locale
-     *            The locale to use for conversion
-     * @return The converted value
-     */
-    protected Result<Number> convertToNumber(String value, Locale locale) {
-        if (value == null) {
-            return Result.ok(null);
-        }
-
-        // Remove leading and trailing white space
-        value = value.trim();
-
-        // Parse and detect errors. If the full string was not used, it is
-        // an error.
-        ParsePosition parsePosition = new ParsePosition(0);
-        Number parsedValue = getFormat(locale).parse(value, parsePosition);
-        if (parsePosition.getIndex() != value.length()) {
-            return Result.error(getErrorMessage());
-        }
-
-        if (parsedValue == null) {
-            // Convert "" to null
-            return Result.ok(null);
-        }
-
-        return Result.ok(parsedValue);
-    }
-
-    /**
-     * Gets the error message to use when conversion fails.
-     *
-     * @return the error message
-     */
-    protected String getErrorMessage() {
-        return errorMessage;
-    }
-
-    @Override
-    public String convertToPresentation(T value, ValueContext context) {
-        if (value == null) {
-            return null;
-        }
-
-        return getFormat(context.getLocale().orElse(null)).format(value);
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/Converter.java b/server/src/main/java/com/vaadin/data/util/converter/Converter.java
deleted file mode 100644 (file)
index 6d58e54..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.io.Serializable;
-import java.util.function.Function;
-
-import com.vaadin.data.Binder.BindingBuilder;
-import com.vaadin.data.Result;
-import com.vaadin.server.SerializableFunction;
-
-/**
- * Interface that implements conversion between a model and a presentation type.
- * <p>
- * Converters must not have any side effects (never update UI from inside a
- * converter).
- *
- * @param <PRESENTATION>
- *            The presentation type.
- * @param <MODEL>
- *            The model type.
- * @author Vaadin Ltd.
- * @since 8.0
- */
-public interface Converter<PRESENTATION, MODEL> extends Serializable {
-
-    /**
-     * Converts the given value from model type to presentation type.
-     * <p>
-     * A converter can optionally use locale to do the conversion.
-     *
-     * @param value
-     *            The value to convert. Can be null
-     * @param context
-     *            The value context for the conversion.
-     * @return The converted value compatible with the source type
-     */
-    public Result<MODEL> convertToModel(PRESENTATION value,
-            ValueContext context);
-
-    /**
-     * Converts the given value from presentation type to model type.
-     * <p>
-     * A converter can optionally use locale to do the conversion.
-     *
-     * @param value
-     *            The value to convert. Can be null
-     * @param context
-     *            The value context for the conversion.
-     * @return The converted value compatible with the source type
-     */
-    public PRESENTATION convertToPresentation(MODEL value,
-            ValueContext context);
-
-    /**
-     * Returns a converter that returns its input as-is in both directions.
-     *
-     * @param <T>
-     *            the input and output type
-     * @return an identity converter
-     */
-    public static <T> Converter<T, T> identity() {
-        return from(t -> Result.ok(t), t -> t);
-    }
-
-    /**
-     * Constructs a converter from two functions. Any {@code Exception}
-     * instances thrown from the {@code toModel} function are converted into
-     * error-bearing {@code Result} objects using the given {@code onError}
-     * function.
-     *
-     * @param <P>
-     *            the presentation type
-     * @param <M>
-     *            the model type
-     * @param toModel
-     *            the function to convert to model
-     * @param toPresentation
-     *            the function to convert to presentation
-     * @param onError
-     *            the function to provide error messages
-     * @return the new converter
-     *
-     * @see Result
-     * @see Function
-     */
-    public static <P, M> Converter<P, M> from(
-            SerializableFunction<P, M> toModel,
-            SerializableFunction<M, P> toPresentation,
-            SerializableFunction<Exception, String> onError) {
-
-        return from(val -> Result.of(() -> toModel.apply(val), onError),
-                toPresentation);
-    }
-
-    /**
-     * Constructs a converter from a filter and a function.
-     *
-     * @param <P>
-     *            the presentation type
-     * @param <M>
-     *            the model type
-     * @param toModel
-     *            the function to convert to model
-     * @param toPresentation
-     *            the function to convert to presentation
-     * @return the new converter
-     *
-     * @see Function
-     */
-    public static <P, M> Converter<P, M> from(
-            SerializableFunction<P, Result<M>> toModel,
-            SerializableFunction<M, P> toPresentation) {
-        return new Converter<P, M>() {
-
-            @Override
-            public Result<M> convertToModel(P value, ValueContext context) {
-                return toModel.apply(value);
-            }
-
-            @Override
-            public P convertToPresentation(M value, ValueContext context) {
-                return toPresentation.apply(value);
-            }
-        };
-    }
-
-    /**
-     * Returns a converter that chains together this converter with the given
-     * type-compatible converter.
-     * <p>
-     * The chained converters will form a new converter capable of converting
-     * from the presentation type of this converter to the model type of the
-     * other converter.
-     * <p>
-     * In most typical cases you should not need this method but instead only
-     * need to define one converter for a binding using
-     * {@link BindingBuilder#withConverter(Converter)}.
-     *
-     * @param <T>
-     *            the model type of the resulting converter
-     * @param other
-     *            the converter to chain, not null
-     * @return a chained converter
-     */
-    public default <T> Converter<PRESENTATION, T> chain(
-            Converter<MODEL, T> other) {
-        return new Converter<PRESENTATION, T>() {
-            @Override
-            public Result<T> convertToModel(PRESENTATION value,
-                    ValueContext context) {
-                Result<MODEL> model = Converter.this.convertToModel(value,
-                        context);
-                return model.flatMap(v -> other.convertToModel(v, context));
-            }
-
-            @Override
-            public PRESENTATION convertToPresentation(T value,
-                    ValueContext context) {
-                MODEL model = other.convertToPresentation(value, context);
-                return Converter.this.convertToPresentation(model, context);
-            }
-        };
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/DateToLongConverter.java b/server/src/main/java/com/vaadin/data/util/converter/DateToLongConverter.java
deleted file mode 100644 (file)
index bd51181..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.util.Date;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link Long} to {@link Date} and back.
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class DateToLongConverter implements Converter<Date, Long> {
-
-    @Override
-    public Result<Long> convertToModel(Date value, ValueContext context) {
-        if (value == null) {
-            return Result.ok(null);
-        }
-
-        return Result.ok(value.getTime());
-    }
-
-    @Override
-    public Date convertToPresentation(Long value, ValueContext context) {
-        if (value == null) {
-            return null;
-        }
-
-        return new Date(value);
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/DateToSqlDateConverter.java b/server/src/main/java/com/vaadin/data/util/converter/DateToSqlDateConverter.java
deleted file mode 100644 (file)
index 1fb7584..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-/**
- *
- */
-package com.vaadin.data.util.converter;
-
-import java.util.Date;
-
-import com.vaadin.data.Result;
-
-/**
- * Converter for handling conversion between {@link java.util.Date} and
- * {@link java.sql.Date}. This is used when a PopupDateField or InlineDateField
- * is connected to a java.sql.Date property. Note that information (time
- * information) is lost when converting from {@link java.util.Date} to
- * {@link java.sql.Date}.
- *
- * @since 8.0
- * @author Vaadin Ltd
- */
-public class DateToSqlDateConverter implements Converter<Date, java.sql.Date> {
-
-    @Override
-    public Result<java.sql.Date> convertToModel(Date value,
-            ValueContext context) {
-        if (value == null) {
-            return Result.ok(null);
-        }
-
-        return Result.ok(new java.sql.Date(value.getTime()));
-    }
-
-    @Override
-    public Date convertToPresentation(java.sql.Date value,
-            ValueContext context) {
-        if (value == null) {
-            return null;
-        }
-
-        return new Date(value.getTime());
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToBigDecimalConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToBigDecimalConverter.java
deleted file mode 100644 (file)
index d30540d..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.data.util.converter;
-
-import java.math.BigDecimal;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link String} to {@link BigDecimal} and back.
- * Uses the given locale and a {@link NumberFormat} instance for formatting and
- * parsing.
- * <p>
- * Leading and trailing white spaces are ignored when converting from a String.
- * </p>
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToBigDecimalConverter
-        extends AbstractStringToNumberConverter<BigDecimal> {
-
-    /**
-     * Creates a new converter instance with the given error message.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    public StringToBigDecimalConverter(String errorMessage) {
-        super(errorMessage);
-    }
-
-    @Override
-    protected NumberFormat getFormat(Locale locale) {
-        NumberFormat numberFormat = super.getFormat(locale);
-        if (numberFormat instanceof DecimalFormat) {
-            ((DecimalFormat) numberFormat).setParseBigDecimal(true);
-        }
-
-        return numberFormat;
-    }
-
-    @Override
-    public Result<BigDecimal> convertToModel(String value,
-            ValueContext context) {
-        return convertToNumber(value, context.getLocale().orElse(null))
-                .map(number -> (BigDecimal) number);
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToBigIntegerConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToBigIntegerConverter.java
deleted file mode 100644 (file)
index 186beb9..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.data.util.converter;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link String} to {@link BigInteger} and back.
- * Uses the given locale and a {@link NumberFormat} instance for formatting and
- * parsing.
- * <p>
- * Leading and trailing white spaces are ignored when converting from a String.
- * </p>
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToBigIntegerConverter
-        extends AbstractStringToNumberConverter<BigInteger> {
-    /**
-     * Creates a new converter instance with the given error message.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    public StringToBigIntegerConverter(String errorMessage) {
-        super(errorMessage);
-    }
-
-    @Override
-    protected NumberFormat getFormat(Locale locale) {
-        NumberFormat numberFormat = super.getFormat(locale);
-        if (numberFormat instanceof DecimalFormat) {
-            ((DecimalFormat) numberFormat).setParseBigDecimal(true);
-        }
-
-        return numberFormat;
-    }
-
-    @Override
-    public Result<BigInteger> convertToModel(String value,
-            ValueContext context) {
-        return convertToNumber(value, context.getLocale().orElse(null))
-                .map(number -> {
-                    if (number == null) {
-                        return null;
-                    } else {
-                        return ((BigDecimal) number).toBigInteger();
-                    }
-                });
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToBooleanConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToBooleanConverter.java
deleted file mode 100644 (file)
index 38b27f8..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link String} to {@link Boolean} and back.
- * The String representation is given by {@link Boolean#toString()} or provided
- * in constructor {@link #StringToBooleanConverter(String, String)}.
- * <p>
- * Leading and trailing white spaces are ignored when converting from a String.
- * </p>
- * <p>
- * For language-dependent representation, subclasses should overwrite
- * {@link #getFalseString(Locale)} and {@link #getTrueString(Locale)}
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToBooleanConverter implements Converter<String, Boolean> {
-
-    private final String trueString;
-
-    private final String falseString;
-
-    private String errorMessage;
-
-    /**
-     * Creates converter with default string representations - "true" and
-     * "false".
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    public StringToBooleanConverter(String errorMessage) {
-        this(errorMessage, Boolean.TRUE.toString(), Boolean.FALSE.toString());
-    }
-
-    /**
-     * Creates converter with custom string representation.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     * @param falseString
-     *            string representation for <code>false</code>
-     * @param trueString
-     *            string representation for <code>true</code>
-     */
-    public StringToBooleanConverter(String errorMessage, String trueString,
-            String falseString) {
-        this.errorMessage = errorMessage;
-        this.trueString = trueString;
-        this.falseString = falseString;
-    }
-
-    @Override
-    public Result<Boolean> convertToModel(String value, ValueContext context) {
-        if (value == null) {
-            return Result.ok(null);
-        }
-
-        // Remove leading and trailing white space
-        value = value.trim();
-
-        Locale locale = context.getLocale().orElse(null);
-        if (getTrueString(locale).equals(value)) {
-            return Result.ok(true);
-        } else if (getFalseString(locale).equals(value)) {
-            return Result.ok(false);
-        } else if (value.isEmpty()) {
-            return Result.ok(null);
-        } else {
-            return Result.error(errorMessage);
-        }
-    }
-
-    @Override
-    public String convertToPresentation(Boolean value, ValueContext context) {
-        if (value == null) {
-            return null;
-        }
-        Locale locale = context.getLocale().orElse(null);
-        if (value) {
-            return getTrueString(locale);
-        } else {
-            return getFalseString(locale);
-        }
-    }
-
-    /**
-     * Gets the locale-depended string representation for false. Default is
-     * locale-independent value provided by {@link #getFalseString()}
-     *
-     * @param locale
-     *            to be used
-     * @return the string representation for false
-     */
-    protected String getFalseString(Locale locale) {
-        return falseString;
-    }
-
-    /**
-     * Gets the locale-depended string representation for true. Default is
-     * locale-independent value provided by {@link #getTrueString()}
-     *
-     * @param locale
-     *            to be used
-     * @return the string representation for true
-     */
-    protected String getTrueString(Locale locale) {
-        return trueString;
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToDateConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToDateConverter.java
deleted file mode 100644 (file)
index d8a036c..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.text.DateFormat;
-import java.text.ParsePosition;
-import java.util.Date;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link Date} to {@link String} and back. Uses
- * the given locale and {@link DateFormat} for formatting and parsing.
- * <p>
- * Leading and trailing white spaces are ignored when converting from a String.
- * </p>
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToDateConverter implements Converter<String, Date> {
-
-    /**
-     * Returns the format used by {@link #convertToPresentation(Date, Locale)}
-     * and {@link #convertToModel(String, Locale)}.
-     *
-     * @param locale
-     *            The locale to use
-     * @return A DateFormat instance
-     */
-    protected DateFormat getFormat(Locale locale) {
-        if (locale == null) {
-            locale = Locale.getDefault();
-        }
-
-        DateFormat format = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
-                DateFormat.MEDIUM, locale);
-        format.setLenient(false);
-        return format;
-    }
-
-    @Override
-    public Result<Date> convertToModel(String value, ValueContext context) {
-        if (value == null) {
-            return Result.ok(null);
-        }
-
-        // Remove leading and trailing white space
-        value = value.trim();
-
-        ParsePosition parsePosition = new ParsePosition(0);
-        Date parsedValue = getFormat(context.getLocale().orElse(null))
-                .parse(value, parsePosition);
-        if (parsePosition.getIndex() != value.length()) {
-            return Result.error("Could not convert '" + value);
-        }
-
-        return Result.ok(parsedValue);
-    }
-
-    @Override
-    public String convertToPresentation(Date value, ValueContext context) {
-        if (value == null) {
-            return null;
-        }
-
-        return getFormat(context.getLocale().orElse(null)).format(value);
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToDoubleConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToDoubleConverter.java
deleted file mode 100644 (file)
index 52bf950..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.text.NumberFormat;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link String} to {@link Double} and back.
- * Uses the given locale and a {@link NumberFormat} instance for formatting and
- * parsing.
- * <p>
- * Leading and trailing white spaces are ignored when converting from a String.
- * </p>
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToDoubleConverter
-        extends AbstractStringToNumberConverter<Double> {
-
-    /**
-     * Creates a new converter instance with the given error message.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    public StringToDoubleConverter(String errorMessage) {
-        super(errorMessage);
-    }
-
-    @Override
-    public Result<Double> convertToModel(String value, ValueContext context) {
-        Result<Number> n = convertToNumber(value,
-                context.getLocale().orElse(null));
-
-        return n.map(number -> {
-            if (number == null) {
-                return null;
-            } else {
-                return number.doubleValue();
-            }
-        });
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToFloatConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToFloatConverter.java
deleted file mode 100644 (file)
index aeeeffc..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.text.NumberFormat;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link String} to {@link Float} and back. Uses
- * the given locale and a {@link NumberFormat} instance for formatting and
- * parsing.
- * <p>
- * Leading and trailing white spaces are ignored when converting from a String.
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToFloatConverter
-        extends AbstractStringToNumberConverter<Float> {
-
-    /**
-     * Creates a new converter instance with the given error message.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    public StringToFloatConverter(String errorMessage) {
-        super(errorMessage);
-    }
-
-    @Override
-    public Result<Float> convertToModel(String value, ValueContext context) {
-        Result<Number> n = convertToNumber(value,
-                context.getLocale().orElse(null));
-
-        return n.map(number -> {
-            if (number == null) {
-                return null;
-            } else {
-                return number.floatValue();
-            }
-        });
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToIntegerConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToIntegerConverter.java
deleted file mode 100644 (file)
index 1c98e54..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.text.NumberFormat;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link String} to {@link Integer} and back.
- * Uses the given locale and a {@link NumberFormat} instance for formatting and
- * parsing.
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToIntegerConverter
-        extends AbstractStringToNumberConverter<Integer> {
-
-    /**
-     * Creates a new converter instance with the given error message.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    public StringToIntegerConverter(String errorMessage) {
-        super(errorMessage);
-    }
-
-    /**
-     * Returns the format used by
-     * {@link #convertToPresentation(Integer, Locale)} and
-     * {@link #convertToModel(String, Locale)}.
-     *
-     * @param locale
-     *            The locale to use
-     * @return A NumberFormat instance
-     */
-    @Override
-    protected NumberFormat getFormat(Locale locale) {
-        if (locale == null) {
-            locale = Locale.getDefault();
-        }
-        return NumberFormat.getIntegerInstance(locale);
-    }
-
-    @Override
-    public Result<Integer> convertToModel(String value, ValueContext context) {
-        Result<Number> n = convertToNumber(value,
-                context.getLocale().orElse(null));
-        return n.flatMap(number -> {
-            if (number == null) {
-                return Result.ok(null);
-            } else {
-                int intValue = number.intValue();
-                if (intValue == number.longValue()) {
-                    // If the value of n is outside the range of long, the
-                    // return value of longValue() is either Long.MIN_VALUE or
-                    // Long.MAX_VALUE. The/ above comparison promotes int to
-                    // long and thus does not need to consider wrap-around.
-                    return Result.ok(intValue);
-                } else {
-                    return Result.error(getErrorMessage());
-                }
-            }
-        });
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/StringToLongConverter.java b/server/src/main/java/com/vaadin/data/util/converter/StringToLongConverter.java
deleted file mode 100644 (file)
index 444e7ed..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.data.util.converter;
-
-import java.text.NumberFormat;
-import java.util.Locale;
-
-import com.vaadin.data.Result;
-
-/**
- * A converter that converts from {@link String} to {@link Long} and back. Uses
- * the given locale and a {@link NumberFormat} instance for formatting and
- * parsing.
- * <p>
- * Override and overwrite {@link #getFormat(Locale)} to use a different format.
- * </p>
- *
- * @author Vaadin Ltd
- * @since 8.0
- */
-public class StringToLongConverter
-        extends AbstractStringToNumberConverter<Long> {
-
-    /**
-     * Creates a new converter instance with the given error message.
-     *
-     * @param errorMessage
-     *            the error message to use if conversion fails
-     */
-    public StringToLongConverter(String errorMessage) {
-        super(errorMessage);
-    }
-
-    /**
-     * Returns the format used by {@link #convertToPresentation(Long, Locale)}
-     * and {@link #convertToModel(String, Locale)}.
-     *
-     * @param locale
-     *            The locale to use
-     * @return A NumberFormat instance
-     */
-    @Override
-    protected NumberFormat getFormat(Locale locale) {
-        if (locale == null) {
-            locale = Locale.getDefault();
-        }
-        return NumberFormat.getIntegerInstance(locale);
-    }
-
-    @Override
-    public Result<Long> convertToModel(String value, ValueContext context) {
-        Result<Number> n = convertToNumber(value,
-                context.getLocale().orElse(null));
-        return n.map(number -> {
-            if (number == null) {
-                return null;
-            } else {
-                return number.longValue();
-            }
-        });
-    }
-
-}
diff --git a/server/src/main/java/com/vaadin/data/util/converter/ValueContext.java b/server/src/main/java/com/vaadin/data/util/converter/ValueContext.java
deleted file mode 100644 (file)
index d478692..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.data.util.converter;
-
-import java.io.Serializable;
-import java.util.Locale;
-import java.util.Objects;
-import java.util.Optional;
-
-import com.vaadin.ui.Component;
-import com.vaadin.ui.UI;
-
-/**
- * Value context for {@code Converter}s. Contains relevant information for
- * converting values.
- *
- * @author Vaadin Ltd.
- * @since
- */
-public class ValueContext implements Serializable {
-
-    private final Component component;
-    private final Locale locale;
-
-    /**
-     * Constructor for {@code ValueContext} without a {@code Locale}.
-     */
-    public ValueContext() {
-        this.component = null;
-        this.locale = findLocale();
-    }
-
-    /**
-     * Constructor for {@code ValueContext} without a {@code Component}.
-     *
-     * @param locale
-     *            The locale used with conversion. Can be null.
-     */
-    public ValueContext(Locale locale) {
-        this.component = null;
-        this.locale = locale;
-    }
-
-    /**
-     * Constructor for {@code ValueContext}.
-     *
-     * @param component
-     *            The component related to current value. Can be null.
-     */
-    public ValueContext(Component component) {
-        Objects.requireNonNull(component,
-                "Component can't be null in ValueContext construction");
-        this.component = component;
-        this.locale = findLocale();
-    }
-
-    private Locale findLocale() {
-        Locale l = null;
-        if (component != null) {
-            l = component.getLocale();
-        }
-        if (l == null && UI.getCurrent() != null) {
-            l = UI.getCurrent().getLocale();
-        }
-        if (l == null) {
-            l = Locale.getDefault();
-        }
-        return l;
-    }
-
-    /**
-     * Returns an {@code Optional} for the {@code Component} related to value
-     * conversion.
-     *
-     * @return the optional of component
-     */
-    public Optional<Component> getComponent() {
-        return Optional.ofNullable(component);
-    }
-
-    /**
-     * Returns an {@code Optional} for the {@code Locale} used in the value
-     * conversion.
-     *
-     * @return the optional of locale
-     */
-    public Optional<Locale> getLocale() {
-        return Optional.ofNullable(locale);
-    }
-}
index 2734658f8f5ff747384ad27cc348a4eef3592690..3d7baa05a018f8371b6ff40414b678437a1e225d 100644 (file)
@@ -30,8 +30,8 @@ import javax.validation.metadata.ConstraintDescriptor;
 
 import com.vaadin.data.ValidationResult;
 import com.vaadin.data.Validator;
+import com.vaadin.data.ValueContext;
 import com.vaadin.data.util.BeanUtil;
-import com.vaadin.data.util.converter.ValueContext;
 
 /**
  * A {@code Validator} using the JSR-303 (javax.validation) annotation-based
index 2f966f81ee598854571ee69415a0c37d370c67cc..7462a22d464de8009330f173c273aa3458d59718 100644 (file)
@@ -19,7 +19,7 @@ import java.util.Comparator;
 import java.util.Objects;
 
 import com.vaadin.data.ValidationResult;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 
 /**
  * Verifies that a value is within the given range.
index 89e4d81a534feb46d04c63237fc9bc1427f1b5d9..21857abed0cf01f5deb0c529f208c4d4ad54f274 100644 (file)
@@ -19,7 +19,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.vaadin.data.ValidationResult;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 
 /**
  * A string validator comparing the string against a Java regular expression.
index f207e618eed3e11aaaab080bc617c3a20ebffa26..e2b02038214448876b7022a97696235d777c7cd6 100644 (file)
@@ -17,7 +17,7 @@
 package com.vaadin.data.validator;
 
 import com.vaadin.data.ValidationResult;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 
 /**
  * Verifies that the length of a string is within the given range.
index 43d374c392b075ae67cdb77c8e67ce2fe11cd836..53415f45a6282091a02b58a60ef28cfd2685ca23 100644 (file)
@@ -31,7 +31,7 @@ import org.jsoup.nodes.Element;
 
 import com.vaadin.data.Result;
 import com.vaadin.data.ValidationResult;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.data.validator.DateRangeValidator;
 import com.vaadin.event.FieldEvents.BlurEvent;
 import com.vaadin.event.FieldEvents.BlurListener;
index 5b0968bae63109717d1961843abd5019b5932a1b..4c7a2da9a8984d6b63e1123513ead3db6e3e9200 100644 (file)
@@ -36,8 +36,8 @@ import org.jsoup.nodes.Attributes;
 import org.jsoup.nodes.Element;
 import org.jsoup.nodes.Node;
 
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.Converter;
+import com.vaadin.data.ValueContext;
 import com.vaadin.shared.ui.AlignmentInfo;
 import com.vaadin.shared.util.SharedUtil;
 import com.vaadin.ui.Alignment;
index 78c3886dd693bc9f067a41d914e002678132edce..6e9ff8f9bb98ea29053e788c2b58858f48e58c47 100644 (file)
@@ -31,12 +31,12 @@ import java.util.concurrent.ConcurrentHashMap;
 
 import org.jsoup.parser.Parser;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.StringToBigDecimalConverter;
-import com.vaadin.data.util.converter.StringToDoubleConverter;
-import com.vaadin.data.util.converter.StringToFloatConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToBigDecimalConverter;
+import com.vaadin.data.converter.StringToDoubleConverter;
+import com.vaadin.data.converter.StringToFloatConverter;
 import com.vaadin.event.ShortcutAction;
 import com.vaadin.server.Resource;
 import com.vaadin.ui.declarative.converters.DesignDateConverter;
index 9ccdea4ba3e408433ad8da070b7656c16a83b1d7..2d0bd2680f4ba7a31574c2de20e69f8cce0ea264 100644 (file)
@@ -19,9 +19,9 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.ui.declarative.DesignAttributeHandler;
 
 /**
index a32c68998f2a86262b7a398e4f4d7bad04d89d83..de7f5ad5b7c2ac55fdb27c5c0f53b4432e49b7d7 100644 (file)
@@ -17,9 +17,9 @@ package com.vaadin.ui.declarative.converters;
 
 import java.util.Locale;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.ui.declarative.DesignAttributeHandler;
 
 /**
index 59301ef3863869ff3fcbc82b4f96a8c20c3d6efc..3d0dd7cb2bd16bb9327ea5923d7370a2df1563df 100644 (file)
@@ -20,9 +20,9 @@ import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
 import java.util.Locale;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.ui.declarative.DesignAttributeHandler;
 
 /**
index cf1c1ef69a335d94af6d416355a86f1fa3087a7b..b32ba3fcf8ec25c40679226ec5a0adb5afe27401 100644 (file)
@@ -15,9 +15,9 @@
  */
 package com.vaadin.ui.declarative.converters;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.ui.declarative.DesignAttributeHandler;
 
 /**
index c03d3750d10eb4d99ace19542dff64e87e130f3f..e1ef5563fe5ba09c6a8df0d065ce7f1bce603dfb 100644 (file)
@@ -21,9 +21,9 @@ import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.server.ExternalResource;
 import com.vaadin.server.FileResource;
 import com.vaadin.server.FontAwesome;
index 4856a0db8fdeea6f56163cd229452cfafb1e9997..e2214cd9b388bf93c7e6c592f24b9364466d2a85 100644 (file)
@@ -20,9 +20,9 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.event.ShortcutAction;
 import com.vaadin.event.ShortcutAction.KeyCode;
 import com.vaadin.event.ShortcutAction.ModifierKey;
index 3fe034e5fd055de8609335299011263fd5bd52f3..074fde525aca07e25680afcdeba605f3f8bd1127 100644 (file)
@@ -17,9 +17,9 @@ package com.vaadin.ui.declarative.converters;
 
 import java.util.TimeZone;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.ui.declarative.DesignAttributeHandler;
 
 /**
index fa81b36bb7869276d8586481e203035386b36d8a..96d87a3f8b10385d07a6504fc48eb7441fa9b63d 100644 (file)
@@ -17,9 +17,9 @@ package com.vaadin.ui.declarative.converters;
 
 import java.lang.reflect.InvocationTargetException;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.ui.declarative.DesignAttributeHandler;
 
 /**
index d04789f35398c1746ee19820d275412490f24f2c..e0f6e2eaa581fb717444101f7c4126cb94e8df9f 100644 (file)
@@ -21,7 +21,7 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import com.vaadin.annotations.PropertyId;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
+import com.vaadin.data.converter.StringToIntegerConverter;
 import com.vaadin.data.validator.StringLengthValidator;
 import com.vaadin.tests.data.bean.Person;
 import com.vaadin.ui.AbstractField;
index 493842b63c235ff59e26331a8936dd86a39b7758..f1d226bf204235ad781affb17a5010c0d61b8bb4 100644 (file)
@@ -28,9 +28,7 @@ import org.junit.Test;
 import com.vaadin.data.Binder.Binding;
 import com.vaadin.data.Binder.BindingBuilder;
 import com.vaadin.data.BindingValidationStatus.Status;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.converter.StringToIntegerConverter;
 import com.vaadin.data.validator.EmailValidator;
 import com.vaadin.data.validator.StringLengthValidator;
 import com.vaadin.server.AbstractErrorMessage;
index d86a9d04cca38d93a7f860813786aea10f9c6e39..bc46395d08682da40daf2687997668f1c40eb976 100644 (file)
@@ -30,8 +30,7 @@ import org.junit.Test;
 
 import com.vaadin.data.Binder.Binding;
 import com.vaadin.data.Binder.BindingBuilder;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.converter.StringToIntegerConverter;
 import com.vaadin.data.validator.NotEmptyValidator;
 import com.vaadin.server.AbstractErrorMessage;
 import com.vaadin.server.ErrorMessage;
index f59c89e1d84507a418346cc2cb4ee6184972725c..820447172e11212cce50b09878f17051e32b4c59 100644 (file)
@@ -28,8 +28,6 @@ import java.util.stream.Stream;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
 import com.vaadin.tests.data.bean.BeanWithEnums;
 import com.vaadin.tests.data.bean.TestEnum;
 import com.vaadin.ui.CheckBoxGroup;
index 4f46a78a5bbbe81cada0a184f6f01669fdd02e9b..1ab39ee46f77019b4294cd76a8e80ca4ee310d3c 100644 (file)
@@ -23,7 +23,7 @@ import org.junit.Test;
 
 import com.vaadin.data.Binder.Binding;
 import com.vaadin.data.Binder.BindingBuilder;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
+import com.vaadin.data.converter.StringToIntegerConverter;
 import com.vaadin.tests.data.bean.Person;
 
 /**
index b0d16bd9e753c5d4ad9fa14f72f43c088c39649f..6fe139b7ad8f9c3419deda36dd68177c7eefa108 100644 (file)
@@ -14,7 +14,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import com.vaadin.data.Binder.BindingBuilder;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
+import com.vaadin.data.converter.StringToIntegerConverter;
 import com.vaadin.data.validator.NotEmptyValidator;
 import com.vaadin.server.ErrorMessage;
 import com.vaadin.tests.data.bean.Person;
index b5a1c3a2be41394140db46a029df492f2a63d565..7a238ac7ce359571098a00170ed2c246fc986be2 100644 (file)
@@ -17,7 +17,6 @@ package com.vaadin.data;
 
 import org.junit.Before;
 
-import com.vaadin.data.util.converter.Converter;
 import com.vaadin.ui.TextField;
 
 /**
index c3921ff5fc1baf5180d06a9700ed4bf734216f34..398af7c1b1de56f2756311a4a143e04d151a7c7f 100644 (file)
@@ -18,8 +18,6 @@ import java.util.stream.Stream;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
 import com.vaadin.tests.data.bean.BeanWithEnums;
 import com.vaadin.tests.data.bean.Sex;
 import com.vaadin.tests.data.bean.TestEnum;
index 9640550d9543367e75d5ffb1c7456442a577396f..75ac1fcf5a229c91abf026604db1bd23d475a386 100644 (file)
@@ -21,7 +21,6 @@ import java.util.Objects;
 import org.junit.Assert;
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.ValueContext;
 import com.vaadin.data.validator.ValidatorTestBase;
 
 /**
index 9fce2996d92cb1786185bcab978707f9d87c12dd..2f13a71dbb4ff67e4e19937069312792021d7c5d 100644 (file)
@@ -7,7 +7,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.ValueContext;
 import com.vaadin.server.VaadinRequest;
 import com.vaadin.ui.TextField;
 import com.vaadin.ui.UI;
index faa37367b082acc352c1d8e6f55e0534c2cc9096..57709ff5e286db724ff0b949cd8097aadb46d7bd 100644 (file)
@@ -21,7 +21,7 @@ import com.vaadin.data.Binder.BindingBuilder;
 import com.vaadin.data.HasValue;
 import com.vaadin.data.ValidationResult;
 import com.vaadin.data.Validator;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 
 /**
  * Simple validator to check against {@code null} value and empty {@link String}
index ae1bb4fe17c9fab446727c3f728d12eb9d94735c..edd500a8a1c53ef5e9525aa0e5a65f2028ed0f43 100644 (file)
@@ -19,7 +19,7 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import com.vaadin.data.ValidationResult;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 
 /**
  * @author Vaadin Ltd
index c8432324ad180dff3b1685f5b0500a63d13fb044..599d7440dbdd5610e5e16fbc59f5cd8b0607fdec 100644 (file)
@@ -7,7 +7,7 @@ import org.junit.Before;
 
 import com.vaadin.data.ValidationResult;
 import com.vaadin.data.Validator;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.ui.Label;
 
 public class ValidatorTestBase {
index 6b25f0a4e7f2df8983c17b66b0f2b05085a1fbe1..9c6a5a27f9980176895b3a9781a3b67496a66eaf 100644 (file)
@@ -3,9 +3,9 @@ package com.vaadin.tests.data.converter;
 import org.junit.Assert;
 import org.junit.Test;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 
 public abstract class AbstractConverterTest {
 
index b4cffaf3255bc43ae68d70e6fbd27297946535eb..123ef80de2f67d99ed659740cec5242dc6f359f4 100644 (file)
@@ -3,9 +3,9 @@ package com.vaadin.tests.data.converter;
 import org.junit.Assert;
 import org.junit.Test;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 
 public abstract class AbstractStringConverterTest
         extends AbstractConverterTest {
index 6d653bb932092eb2b2988405eb439ea0183dd64b..3ba3c2888263cb8ed33260aec6b6865222d72bb8 100644 (file)
@@ -3,9 +3,9 @@ package com.vaadin.tests.data.converter;
 import org.junit.Assert;
 import org.junit.Test;
 
+import com.vaadin.data.Converter;
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.Converter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
 import com.vaadin.server.SerializableFunction;
 
 public class ConverterTest {
index 75fc42dbb739cbba66ec490c87ac45d6a640fc25..8bfe3cf1221662692e5f8b48de8ed7d68f34cca7 100644 (file)
@@ -4,8 +4,8 @@ import java.util.Date;
 
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.DateToLongConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.DateToLongConverter;
 
 public class DateToLongConverterTest extends AbstractConverterTest {
 
index c1ecf4657b1187cb0ae3a097e6bf54031fd1928b..70219761f94cf2c900adda95f3ee0a7443ad2280 100644 (file)
@@ -5,8 +5,8 @@ import java.util.Locale;
 
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.DateToSqlDateConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.DateToSqlDateConverter;
 
 public class DateToSqlDateConverterTest extends AbstractConverterTest {
 
index 2178cc561ed51cb90d674ec479ac6fef6ebdd69e..9837257f64d72b2565e77b48484bd26a9529ab86 100644 (file)
@@ -22,8 +22,8 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.StringToBigDecimalConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToBigDecimalConverter;
 
 public class StringToBigDecimalConverterTest
         extends AbstractStringConverterTest {
index 3e7afd4f550b2db8b9f7f4d20c650fe5e3262d58..cc33185efdc92aecce85728ec6a177150043f0bd 100644 (file)
@@ -22,8 +22,8 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.StringToBigIntegerConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToBigIntegerConverter;
 
 public class StringToBigIntegerConverterTest
         extends AbstractStringConverterTest {
index d3d539ae8fc19f166a37d080f938eefbe1a80f38..5c265fe31c182b66441052feb4be65e229074374 100644 (file)
@@ -7,8 +7,8 @@ import java.util.Locale;
 import org.junit.Assert;
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.StringToBooleanConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToBooleanConverter;
 
 public class StringToBooleanConverterTest extends AbstractStringConverterTest {
 
index 5319813c0018a1ad9ff512805532d67a1c304427..048c6e52054dc7b676b968627fcc7b3c8fe1a6e9 100644 (file)
@@ -5,8 +5,8 @@ import java.util.Locale;
 
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.StringToDateConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToDateConverter;
 
 public class StringToDateConverterTest extends AbstractConverterTest {
 
index ba807e5782cca1fdcfef2d857b34e9906b0f7fa5..acadc6b45829cc43c0abb8fc272cb9c752601644 100644 (file)
@@ -4,8 +4,8 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.StringToDoubleConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToDoubleConverter;
 
 public class StringToDoubleConverterTest extends AbstractConverterTest {
 
index 8bdf651edee58fe7f693db056a45334807c71ac6..89a9c2506820214e2a7f6f66b1d618b6b77500d3 100644 (file)
@@ -2,8 +2,8 @@ package com.vaadin.tests.data.converter;
 
 import org.junit.Test;
 
-import com.vaadin.data.util.converter.StringToFloatConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToFloatConverter;
 
 public class StringToFloatConverterTest extends AbstractStringConverterTest {
 
index 62fe699395adc62410ab64b460d4e499e88e01ef..06c22a206412444efe1728e3b63e58134c94d21b 100644 (file)
@@ -4,8 +4,8 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToIntegerConverter;
 
 public class StringToIntegerConverterTest extends AbstractConverterTest {
 
index 0acd463a26e8b3dbc42d65e0503077042f5ffaaa..29fe1d824348fb9d576c777eca7576b326e13a7c 100644 (file)
@@ -3,8 +3,8 @@ package com.vaadin.tests.data.converter;
 import org.junit.Test;
 
 import com.vaadin.data.Result;
-import com.vaadin.data.util.converter.StringToLongConverter;
-import com.vaadin.data.util.converter.ValueContext;
+import com.vaadin.data.ValueContext;
+import com.vaadin.data.converter.StringToLongConverter;
 
 public class StringToLongConverterTest extends AbstractStringConverterTest {
 
index 2d0c893ddf0ad4c15268a3ae894a51be80ce6b7b..ed82395c888f8e2d5368ed0032a36fa89967d219 100644 (file)
@@ -16,7 +16,7 @@ import java.util.stream.Stream;
 import com.vaadin.annotations.Theme;
 import com.vaadin.annotations.Widgetset;
 import com.vaadin.data.Binder;
-import com.vaadin.data.util.converter.StringToIntegerConverter;
+import com.vaadin.data.converter.StringToIntegerConverter;
 import com.vaadin.event.selection.MultiSelectionEvent;
 import com.vaadin.event.selection.SingleSelectionEvent;
 import com.vaadin.server.VaadinRequest;