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