 +@SuppressWarnings("serial")
 +public class ConvertedProperty<P, M> extends AbstractProperty<P> {
 +
-+    private final Class<? extends P> type;
 +    private final Property<M> property;
 +    private final Converter<P, M> converter;
 +    private final Locale locale;

+
+    @Override
+    public void setValue(Object value) {
+        this.property.setValue(this.converter.convertToModel(this.type.cast(value), this.locale));
+    }
+
+    @Override

+     * <p>
+     * Equivalent to:
+     *  <blockquote><code>
+     *  ConvertedProperty(property, converter, null)
+     *  </code></blockquote>
+     */
+    public ConvertedProperty(Property<M> property, Converter<P, M> converter) {
+        this(property, converter, null);
+    }
+
+    @Override
+    public Class<? extends P> getType() {
+        return this.converter.getPresentationType();
+    }
+
+    @Override
