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