Yes, you're right.

Thanks

Sven


On 22.07.2016 09:34, Martin Grigorov wrote:
Hi Sven,

I think the overrides of #createConverter() don't need to be 'public'.
'protected' is better.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Thu, Jul 21, 2016 at 10:22 PM, <[email protected]> wrote:

Repository: wicket
Updated Branches:
   refs/heads/wicket-7.x b13979ddf -> af3785aab


WICKET-5866 added #createConverter() without generics parameter for
convenience


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/af3785aa
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/af3785aa
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/af3785aa

Branch: refs/heads/wicket-7.x
Commit: af3785aabf1a4753fc266d20e969b75cfe5505cb
Parents: b13979d
Author: Sven Meier <[email protected]>
Authored: Thu Jul 21 22:08:33 2016 +0200
Committer: Sven Meier <[email protected]>
Committed: Thu Jul 21 22:09:05 2016 +0200

----------------------------------------------------------------------
  .../main/java/org/apache/wicket/Component.java  | 29 ++++++++++++++++----
  .../wicket/markup/html/form/CheckBox.java       | 11 ++------
  ...tComponentConvertEmptyStringsToNullTest.java |  5 ++--
  .../datetime/markup/html/basic/DateLabel.java   | 13 +++------
  .../markup/html/form/DateTextField.java         | 12 +++-----
  .../extensions/yui/calendar/DateTimeField.java  | 10 ++-----
  .../wicket/examples/forminput/FormInput.java    | 17 ++++--------
  .../markup/html/form/DateTextField.java         | 10 ++-----
  8 files changed, 48 insertions(+), 59 deletions(-)
----------------------------------------------------------------------



http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-core/src/main/java/org/apache/wicket/Component.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java
b/wicket-core/src/main/java/org/apache/wicket/Component.java
index ff77446..0fc5252 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -1360,20 +1360,39 @@ public abstract class Component
         }

         /**
-        * Gets the converter that should be used by this component.
-        *
+        * Get the converter that should be used by this component,
delegates to
+        * {@link #createConverter(Class)} and then to the application's
+        * {@link IConverterLocator}.
+        *
          * @param type
          *            The type to convert to
-        *
+        *
          * @return The converter that should be used by this component
          */
+       @SuppressWarnings("unchecked")
         @Override
-       public <C> IConverter<C> getConverter(Class<C> type)
-       {
+       public <C> IConverter<C> getConverter(Class<C> type) {
+               IConverter<?> converter = createConverter(type);
+               if (converter != null) {
+                       return (IConverter<C>) converter;
+               }
                 return
getApplication().getConverterLocator().getConverter(type);
         }

         /**
+        * Factory method for converters to be used by this component,
+        * returns {@code null} by default.
+        *
+        * @param type
+        *            The type to convert to
+        *
+        * @return a converter to be used by this component
+        */
+       protected IConverter<?> createConverter(Class<?> type) {
+               return null;
+       }
+
+       /**
          * Gets whether model strings should be escaped.
          *
          * @return Returns whether model strings should be escaped


http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
index 310ccc9..47ee143 100644
---
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
+++
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
@@ -191,18 +191,13 @@ public class CheckBox extends FormComponent<Boolean>
implements IOnChangeListene
          * @see org.apache.wicket.Component#getConverter(java.lang.Class)
          */
         @Override
-       public final <C> IConverter<C> getConverter(Class<C> type)
+       public IConverter<?> createConverter(Class<?> type)
         {
                 if (Boolean.class.equals(type))
                 {
-                       @SuppressWarnings("unchecked")
-                       IConverter<C> converter =
(IConverter<C>)CheckBoxConverter.INSTANCE;
-                       return converter;
-               }
-               else
-               {
-                       return super.getConverter(type);
+                       return CheckBoxConverter.INSTANCE;
                 }
+               return null;
         }

         /**


http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractTextComponentConvertEmptyStringsToNullTest.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractTextComponentConvertEmptyStringsToNullTest.java
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractTextComponentConvertEmptyStringsToNullTest.java
index cef3a4a..0603dbc 100644
---
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractTextComponentConvertEmptyStringsToNullTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractTextComponentConvertEmptyStringsToNullTest.java
@@ -74,10 +74,9 @@ public class
AbstractTextComponentConvertEmptyStringsToNullTest extends WicketTe
                                 private static final long serialVersionUID
= 1L;

                                 @Override
-                               @SuppressWarnings("unchecked")
-                               public <C> IConverter<C>
getConverter(Class<C> type)
+                               public IConverter<?>
createConverter(Class<?> type)
                                 {
-                                       return (IConverter<C>)new
StringArrayConverter();
+                                       return new StringArrayConverter();
                                 }
                         }.setConvertEmptyInputStringToNull(false));
                 }


http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
----------------------------------------------------------------------
diff --git
a/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
b/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
index 6f5610b..c9c50a8 100644
---
a/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
+++
b/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
@@ -257,18 +257,13 @@ public class DateLabel extends Label implements
IGenericComponent<Date>
          * Returns the specialized converter.
          */
         @Override
-       public <C> IConverter<C> getConverter(Class<C> clazz)
+       public IConverter<?> createConverter(Class<?> type)
         {
-               if (Date.class.isAssignableFrom(clazz))
+               if (Date.class.isAssignableFrom(type))
                 {
-                       @SuppressWarnings("unchecked")
-                       IConverter<C> result = (IConverter<C>)converter;
-                       return result;
-               }
-               else
-               {
-                       return super.getConverter(clazz);
+                       return converter;
                 }
+               return null;
         }

         /**


http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java
----------------------------------------------------------------------
diff --git
a/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java
b/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java
index c2ce854..8009813 100644
---
a/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java
+++
b/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java
@@ -220,20 +220,16 @@ public class DateTextField extends TextField<Date>
implements ITextFormatProvide

         /**
          * @return The specialized converter.
-        * @see org.apache.wicket.Component#getConverter(java.lang.Class)
+        * @see
org.apache.wicket.Component#createConverter(java.lang.Class)
          */
-       @SuppressWarnings("unchecked")
         @Override
-       public <C> IConverter<C> getConverter(Class<C> clazz)
+       public IConverter<?> createConverter(Class<?> clazz)
         {
                 if (Date.class.isAssignableFrom(clazz))
                 {
-                       return (IConverter<C>)converter;
-               }
-               else
-               {
-                       return super.getConverter(clazz);
+                       return converter;
                 }
+               return null;
         }

         /**


http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
----------------------------------------------------------------------
diff --git
a/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
b/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
index dfc00b4..746c5fd 100644
---
a/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
+++
b/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
@@ -226,18 +226,14 @@ public class DateTimeField extends
FormComponentPanel<Date>
                 {
                         private static final long serialVersionUID = 1L;

-                       @SuppressWarnings("unchecked")
                         @Override
-                       public <C> IConverter<C> getConverter(Class<C>
type)
+                       public IConverter<?> createConverter(Class<?> type)
                         {
                                 if (Integer.class.isAssignableFrom(type))
                                 {
-                                       return
(IConverter<C>)MINUTES_CONVERTER;
-                               }
-                               else
-                               {
-                                       return super.getConverter(type);
+                                       return MINUTES_CONVERTER;
                                 }
+                               return null;
                         }
                 };
                 minutesField.add(new RangeValidator<>(0, 59));


http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
----------------------------------------------------------------------
diff --git
a/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
b/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
index 9cbc294..d6dad11 100644
---
a/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
+++
b/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
@@ -148,18 +148,14 @@ public class FormInput extends WicketExamplePage
                         // TextField using a custom converter.
                         add(new TextField<URL>("urlProperty", URL.class)
                         {
-                               @SuppressWarnings("unchecked")
                                 @Override
-                               public <C> IConverter<C>
getConverter(final Class<C> type)
+                               public IConverter<?>
createConverter(Class<?> type)
                                 {
                                         if
(URL.class.isAssignableFrom(type))
                                         {
-                                               return
(IConverter<C>)URLConverter.INSTANCE;
-                                       }
-                                       else
-                                       {
-                                               return
super.getConverter(type);
+                                               return
URLConverter.INSTANCE;
                                         }
+                                       return null;
                                 }
                         });

@@ -168,17 +164,14 @@ public class FormInput extends WicketExamplePage
                         {

                                 @Override
-                               public <C> IConverter<C>
getConverter(final Class<C> type)
+                               public IConverter<?>
createConverter(Class<?> type)
                                 {
                                         if
(UsPhoneNumber.class.isAssignableFrom(type))
                                         {
                                                 // US telephone number mask
                                                 return new
MaskConverter<>("(###) ###-####", UsPhoneNumber.class);
                                         }
-                                       else
-                                       {
-                                               return
super.getConverter(type);
-                                       }
+                                       return null;
                                 }
                         });



http://git-wip-us.apache.org/repos/asf/wicket/blob/af3785aa/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java
----------------------------------------------------------------------
diff --git
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java
index 762a5c7..23fea2b 100644
---
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java
+++
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java
@@ -147,18 +147,14 @@ public class DateTextField extends TextField<Date>
implements ITextFormatProvide
          *
          * @see org.apache.wicket.markup.html.form.TextField
          */
-       @SuppressWarnings("unchecked")
         @Override
-       public <C> IConverter<C> getConverter(final Class<C> type)
+       public IConverter<?> createConverter(Class<?> type)
         {
                 if (Date.class.isAssignableFrom(type))
                 {
-                       return (IConverter<C>)converter;
-               }
-               else
-               {
-                       return super.getConverter(type);
+                       return converter;
                 }
+               return null;
         }

         /**



Reply via email to