Hi,
On Wed, Nov 16, 2011 at 11:50 AM, vineet semwal
<[email protected]> wrote:
> martin i too think tooptionalMethods in StringValue should behave the
> way llia is saying ie. they should return null if text is empty or
> null..
Hm. Not quite convinced.
?a=b&c=&e=f is a valid query string and 'c' has value "" while 'g' has null
maybe just some of toOptionalXyz() methods should use Strings.isEmpty()
e.g. toOptionalString() and toOptionalBoolean() should not check for ""
> for eg. currently public final Long toOptionalLong() throws
> StringValueConversionException
> {
> return (text == null) ? null : toLongObject();
> }
>
> can be changed to
> public final Long toOptionalLong() throws StringValueConversionException
> {
> return (Strings.isEmpty(text)) ? null : toLongObject();
> }
>
> On Wed, Nov 16, 2011 at 2:57 PM, Martin Grigorov <[email protected]> wrote:
>> Hi,
>>
>> At least this is what the javadoc says:
>> "Convert to object types, returning null if text is null."
>>
>> I think the more appropriate method for you is
>> org.apache.wicket.util.string.StringValue.toLong(long) but it also
>> throws exceptions if the provided value is empty string.
>>
>> On Wed, Nov 16, 2011 at 11:00 AM, Илья Нарыжный <[email protected]> wrote:
>>> Hello,
>>>
>>> I have page mounted as @MountPath("/page/#{pageId}")
>>>
>>> Also I have following code:
>>>
>>> public ViewPagePage(PageParameters params)
>>> {
>>> this(getEntityPkFor(params, Page.class, 1)); //1 - is default ID if
>>> PK in url was not found
>>> }
>>>
>>> and:
>>>
>>> protected static Long getEntityPkFor(PageParameters params, Class clazz,
>>> Long defaultPk)
>>> {
>>> String pkFieldName = EntitiesDescriptor.get().getPkFieldName(clazz);
>>> Long ret=null;
>>> if(pkFieldName!=null)
>>> {
>>> ret = params.get(pkFieldName).toOptionalLong();
>>> }
>>> if(ret==null)
>>> {
>>> ret = params.get("id").toOptionalLong();
>>> }
>>> return ret==null?defaultPk:ret;
>>> }
>>>
>>> But(!!!) if ID was not put to the URL I have following Exception:
>>>
>>> Caused by: org.apache.wicket.util.string.StringValueConversionException:
>>> Unable
>>> to convert '' to a Long value
>>> at
>>> org.apache.wicket.util.string.StringValue.toLongObject(StringValue.ja
>>> va:589)
>>> at
>>> org.apache.wicket.util.string.StringValue.toOptionalLong(StringValue.
>>> java:657)
>>> at ru.ydn.wicket.EntityPage.getEntityPkFor(EntityPage.java:57)
>>> at ru.ydn.wicket.web.ViewPagePage.<init>(ViewPagePage.java:84)
>>> ... 37 more
>>> Caused by: java.lang.NumberFormatException: For input string: ""
>>> at
>>> java.lang.NumberFormatException.forInputString(NumberFormatException.
>>> java:48)
>>> at java.lang.Long.parseLong(Long.java:431)
>>> at java.lang.Long.<init>(Long.java:678)
>>> at
>>> org.apache.wicket.util.string.StringValue.toLongObject(StringValue.ja
>>> va:585)
>>>
>>> The problem in following code:
>>>
>>> public final Long toOptionalLong() throws StringValueConversionException
>>> {
>>> return (text == null) ? null : toLongObject();
>>> }
>>>
>>> text should be checked for emptiness - not only null
>>>
>>> What do you think?
>>>
>>> Thanks,
>>>
>>> Ilia
>>>
>>
>>
>>
>> --
>> Martin Grigorov
>> jWeekend
>> Training, Consulting, Development
>> http://jWeekend.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
>
> --
> thank you,
>
> regards,
> Vineet Semwal
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
--
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]