You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2016/07/21 20:22:36 UTC

wicket git commit: WICKET-5866 added #createConverter() without generics parameter for convenience

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 <sv...@apache.org>
Authored: Thu Jul 21 22:08:33 2016 +0200
Committer: Sven Meier <sv...@apache.org>
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;
 	}
 
 	/**


Re: wicket git commit: WICKET-5866 added #createConverter() without generics parameter for convenience

Posted by Sven Meier <sv...@meiers.net>.
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, <sv...@apache.org> 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 <sv...@apache.org>
>> Authored: Thu Jul 21 22:08:33 2016 +0200
>> Committer: Sven Meier <sv...@apache.org>
>> 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;
>>          }
>>
>>          /**
>>
>>


Re: wicket git commit: WICKET-5866 added #createConverter() without generics parameter for convenience

Posted by Martin Grigorov <mg...@apache.org>.
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, <sv...@apache.org> 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 <sv...@apache.org>
> Authored: Thu Jul 21 22:08:33 2016 +0200
> Committer: Sven Meier <sv...@apache.org>
> 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;
>         }
>
>         /**
>
>