You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Scott Gray <sc...@hotwaxmedia.com> on 2011/05/23 05:30:32 UTC
Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...
Hi Marco,
We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);
Regards
Scott
On 23/05/2011, at 1:11 AM, mrisaliti@apache.org wrote:
> Author: mrisaliti
> Date: Sun May 22 13:11:17 2011
> New Revision: 1125951
>
> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
> Log:
> Webpos2 improved version (OFBIZ-4287)
>
[snip]
>
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
> @@ -20,6 +20,8 @@
> package org.ofbiz.base.util;
>
> import java.math.BigDecimal;
> +import java.text.NumberFormat;
> +import java.text.ParseException;
> import java.util.HashMap;
> import java.util.Locale;
>
> @@ -250,4 +252,27 @@ public class UtilNumber {
>
> return (bd.toString() + "%");
> }
> +
> + /**
> + * Method to convert a string into BigDecimal.
> + *
> + * @param stringToConvert String to convert to BigDecimal
> + * @return The string converted to BigDecimal
> + */
> + public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
> + if (stringToConvert != null && stringToConvert != "") {
> + Number numb = null;
> + NumberFormat nf = NumberFormat.getInstance(locale);
> + nf.setMaximumFractionDigits(10);
> + try {
> + numb = nf.parse(stringToConvert);
> + return (new BigDecimal(numb.toString()));
> + } catch (ParseException e) {
> + return null;
> + }
> + }
> + else {
> + return null;
> + }
> + }
> }
>
Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...
Posted by "risalitim@gmail.com" <ri...@gmail.com>.
Thanks Scott for the suggestion, I have fixed into trunk rev. 1127651.
Marco
Il giorno 23/mag/2011, alle ore 23.21, Scott Gray ha scritto:
> Use the simple-map-processor for validation:
> <call-map-processor in-map-name="context" out-map-name="context">
> <simple-map-processor name="inputValidate">
> <process field="startingDrawer"><convert type="BigDecimal"><fail-message message="Insert a valid starting drawer amount"/></convert></process>
> </simple-map-processor>
> </call-map-processor>
>
> Regards
> Scott
>
> HotWax Media
> http://www.hotwaxmedia.com
>
> On 24/05/2011, at 7:05 AM, risalitim@gmail.com wrote:
>
>> Hi Scott,
>>
>> I agree with you but when I did it (probably one year ago) I see that if I use the method simpleTypeConvert the exception is not recognized by call-class-method and then the exception is shown to the final user, something similar to:
>>
>> ERROR: Could not complete the Open Terminal [file:/ofbiz_webpos2/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml#openTerminal] process [Method to execute named simpleTypeConvert threw an exception: org.ofbiz.base.util.GeneralException: java.text.ParseException: Unparseable number: "a33ee" (java.text.ParseException: Unparseable number: "a33ee")]
>>
>> instead using my method the user see this error:
>>
>> Insert a valid starting drawer amount
>>
>> I agree to use only one method for conversion (so the standard one simpleTypeConvert) but in this case I need to trap the exception in the simple method.
>>
>> Any hint to solve this problem and then remove the method UtilNumber.stringToBigDecimal.
>>
>> On markmail I found this old thread:
>>
>> http://ofbiz.markmail.org/search/?q=exception%20in%20call-class-method#query:exception%20in%20call-class-method+page:1+mid:orxqauretvhwuznf+state:results
>>
>> Thanks
>> Marco
>>
>>
>>> Hi Marco,
>>>
>>> We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
>>> BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);
>>>
>>> Regards
>>> Scott
>>>
>>> On 23/05/2011, at 1:11 AM, mrisaliti@apache.org wrote:
>>>
>>>> Author: mrisaliti
>>>> Date: Sun May 22 13:11:17 2011
>>>> New Revision: 1125951
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
>>>> Log:
>>>> Webpos2 improved version (OFBIZ-4287)
>>>>
>>> [snip]
>>>>
>>>>
>>>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
>>>> ==============================================================================
>>>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
>>>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
>>>> @@ -20,6 +20,8 @@
>>>> package org.ofbiz.base.util;
>>>>
>>>> import java.math.BigDecimal;
>>>> +import java.text.NumberFormat;
>>>> +import java.text.ParseException;
>>>> import java.util.HashMap;
>>>> import java.util.Locale;
>>>>
>>>> @@ -250,4 +252,27 @@ public class UtilNumber {
>>>>
>>>> return (bd.toString() + "%");
>>>> }
>>>> +
>>>> + /**
>>>> + * Method to convert a string into BigDecimal.
>>>> + *
>>>> + * @param stringToConvert String to convert to BigDecimal
>>>> + * @return The string converted to BigDecimal
>>>> + */
>>>> + public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
>>>> + if (stringToConvert != null && stringToConvert != "") {
>>>> + Number numb = null;
>>>> + NumberFormat nf = NumberFormat.getInstance(locale);
>>>> + nf.setMaximumFractionDigits(10);
>>>> + try {
>>>> + numb = nf.parse(stringToConvert);
>>>> + return (new BigDecimal(numb.toString()));
>>>> + } catch (ParseException e) {
>>>> + return null;
>>>> + }
>>>> + }
>>>> + else {
>>>> + return null;
>>>> + }
>>>> + }
>>>> }
>>>>
>>>
>>
>
Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...
Posted by Scott Gray <sc...@hotwaxmedia.com>.
Use the simple-map-processor for validation:
<call-map-processor in-map-name="context" out-map-name="context">
<simple-map-processor name="inputValidate">
<process field="startingDrawer"><convert type="BigDecimal"><fail-message message="Insert a valid starting drawer amount"/></convert></process>
</simple-map-processor>
</call-map-processor>
Regards
Scott
HotWax Media
http://www.hotwaxmedia.com
On 24/05/2011, at 7:05 AM, risalitim@gmail.com wrote:
> Hi Scott,
>
> I agree with you but when I did it (probably one year ago) I see that if I use the method simpleTypeConvert the exception is not recognized by call-class-method and then the exception is shown to the final user, something similar to:
>
> ERROR: Could not complete the Open Terminal [file:/ofbiz_webpos2/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml#openTerminal] process [Method to execute named simpleTypeConvert threw an exception: org.ofbiz.base.util.GeneralException: java.text.ParseException: Unparseable number: "a33ee" (java.text.ParseException: Unparseable number: "a33ee")]
>
> instead using my method the user see this error:
>
> Insert a valid starting drawer amount
>
> I agree to use only one method for conversion (so the standard one simpleTypeConvert) but in this case I need to trap the exception in the simple method.
>
> Any hint to solve this problem and then remove the method UtilNumber.stringToBigDecimal.
>
> On markmail I found this old thread:
>
> http://ofbiz.markmail.org/search/?q=exception%20in%20call-class-method#query:exception%20in%20call-class-method+page:1+mid:orxqauretvhwuznf+state:results
>
> Thanks
> Marco
>
>
>> Hi Marco,
>>
>> We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
>> BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);
>>
>> Regards
>> Scott
>>
>> On 23/05/2011, at 1:11 AM, mrisaliti@apache.org wrote:
>>
>>> Author: mrisaliti
>>> Date: Sun May 22 13:11:17 2011
>>> New Revision: 1125951
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
>>> Log:
>>> Webpos2 improved version (OFBIZ-4287)
>>>
>> [snip]
>>>
>>>
>>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
>>> ==============================================================================
>>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
>>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
>>> @@ -20,6 +20,8 @@
>>> package org.ofbiz.base.util;
>>>
>>> import java.math.BigDecimal;
>>> +import java.text.NumberFormat;
>>> +import java.text.ParseException;
>>> import java.util.HashMap;
>>> import java.util.Locale;
>>>
>>> @@ -250,4 +252,27 @@ public class UtilNumber {
>>>
>>> return (bd.toString() + "%");
>>> }
>>> +
>>> + /**
>>> + * Method to convert a string into BigDecimal.
>>> + *
>>> + * @param stringToConvert String to convert to BigDecimal
>>> + * @return The string converted to BigDecimal
>>> + */
>>> + public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
>>> + if (stringToConvert != null && stringToConvert != "") {
>>> + Number numb = null;
>>> + NumberFormat nf = NumberFormat.getInstance(locale);
>>> + nf.setMaximumFractionDigits(10);
>>> + try {
>>> + numb = nf.parse(stringToConvert);
>>> + return (new BigDecimal(numb.toString()));
>>> + } catch (ParseException e) {
>>> + return null;
>>> + }
>>> + }
>>> + else {
>>> + return null;
>>> + }
>>> + }
>>> }
>>>
>>
>
Re: svn commit: r1125951 [1/9] - in /ofbiz/trunk: applications/order/config/ applications/order/src/org/ofbiz/order/shoppingcart/ applications/order/webapp/ordermgr/WEB-INF/actions/order/ applications/order/widget/ordermgr/ framework/base/src/org/ofbiz/bas...
Posted by "risalitim@gmail.com" <ri...@gmail.com>.
Hi Scott,
I agree with you but when I did it (probably one year ago) I see that if I use the method simpleTypeConvert the exception is not recognized by call-class-method and then the exception is shown to the final user, something similar to:
ERROR: Could not complete the Open Terminal [file:/ofbiz_webpos2/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml#openTerminal] process [Method to execute named simpleTypeConvert threw an exception: org.ofbiz.base.util.GeneralException: java.text.ParseException: Unparseable number: "a33ee" (java.text.ParseException: Unparseable number: "a33ee")]
instead using my method the user see this error:
Insert a valid starting drawer amount
I agree to use only one method for conversion (so the standard one simpleTypeConvert) but in this case I need to trap the exception in the simple method.
Any hint to solve this problem and then remove the method UtilNumber.stringToBigDecimal.
On markmail I found this old thread:
http://ofbiz.markmail.org/search/?q=exception%20in%20call-class-method#query:exception%20in%20call-class-method+page:1+mid:orxqauretvhwuznf+state:results
Thanks
Marco
> Hi Marco,
>
> We have the conversion framework for converting Strings to BigDecimals so there is no need to implement a new method for it:
> BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, "BigDecimal", null, locale);
>
> Regards
> Scott
>
> On 23/05/2011, at 1:11 AM, mrisaliti@apache.org wrote:
>
>> Author: mrisaliti
>> Date: Sun May 22 13:11:17 2011
>> New Revision: 1125951
>>
>> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
>> Log:
>> Webpos2 improved version (OFBIZ-4287)
>>
> [snip]
>>
>>
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun May 22 13:11:17 2011
>> @@ -20,6 +20,8 @@
>> package org.ofbiz.base.util;
>>
>> import java.math.BigDecimal;
>> +import java.text.NumberFormat;
>> +import java.text.ParseException;
>> import java.util.HashMap;
>> import java.util.Locale;
>>
>> @@ -250,4 +252,27 @@ public class UtilNumber {
>>
>> return (bd.toString() + "%");
>> }
>> +
>> + /**
>> + * Method to convert a string into BigDecimal.
>> + *
>> + * @param stringToConvert String to convert to BigDecimal
>> + * @return The string converted to BigDecimal
>> + */
>> + public static BigDecimal stringToBigDecimal(String stringToConvert, Locale locale) {
>> + if (stringToConvert != null && stringToConvert != "") {
>> + Number numb = null;
>> + NumberFormat nf = NumberFormat.getInstance(locale);
>> + nf.setMaximumFractionDigits(10);
>> + try {
>> + numb = nf.parse(stringToConvert);
>> + return (new BigDecimal(numb.toString()));
>> + } catch (ParseException e) {
>> + return null;
>> + }
>> + }
>> + else {
>> + return null;
>> + }
>> + }
>> }
>>
>