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;
}
/**