[
http://issues.apache.org/jira/browse/TAPESTRY-817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Andreou reassigned TAPESTRY-817:
----------------------------------------
Assignee: Andreas Andreou
> Translator for BigDecimal values
> --------------------------------
>
> Key: TAPESTRY-817
> URL: http://issues.apache.org/jira/browse/TAPESTRY-817
> Project: Tapestry
> Issue Type: New Feature
> Components: Framework
> Affects Versions: 4.0
> Reporter: Vjeran Marcinko
> Assigned To: Andreas Andreou
> Fix For: 4.1.2
>
>
> Tapestry currently lacks Translator for BigDecimal values. NumberTranslator
> is no good since it uses DecimalFormat underneath which converts String value
> into Double object, which then cannot accurately be converted to BigDecimal
> by it's very nature.
> Solution is to introduce new BigDecimalTranslator, something like :
> import org.apache.hivemind.ApplicationRuntimeException;
> import org.apache.tapestry.form.IFormComponent;
> import org.apache.tapestry.form.ValidationMessages;
> import org.apache.tapestry.form.translator.AbstractTranslator;
> import org.apache.tapestry.valid.ValidationConstraint;
> import org.apache.tapestry.valid.ValidationStrings;
> import org.apache.tapestry.valid.ValidatorException;
> import java.math.BigDecimal;
> import java.util.Locale;
> public class BigDecimalTranslator extends AbstractTranslator {
> public BigDecimalTranslator() {
> }
> // Needed until HIVEMIND-134 fix is available
> public BigDecimalTranslator(String initializer) {
> super(initializer);
> }
> protected String formatObject(IFormComponent field, Locale locale, Object
> object) {
> if (!(object instanceof BigDecimal)) {
> throw new ApplicationRuntimeException("BigDecimalTranslator
> translates values of type BigDecimal, not: " + object.getClass());
> }
> return object.toString();
> }
> protected Object parseText(IFormComponent field, ValidationMessages
> messages, String text) throws ValidatorException {
> try {
> return new BigDecimal(text);
> } catch (NumberFormatException e) {
> throw new ValidatorException(buildMessage(messages, field,
> ValidationStrings.INVALID_NUMBER), ValidationConstraint.NUMBER_FORMAT);
> }
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]