You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Henning Schmiedehausen (JIRA)" <de...@velocity.apache.org> on 2007/03/08 01:08:24 UTC
[jira] Closed: (VELOCITY-242) [PATCH] Decimals in velocity
[ https://issues.apache.org/jira/browse/VELOCITY-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Henning Schmiedehausen closed VELOCITY-242.
-------------------------------------------
> [PATCH] Decimals in velocity
> ----------------------------
>
> Key: VELOCITY-242
> URL: https://issues.apache.org/jira/browse/VELOCITY-242
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.5
> Environment: Operating System: other
> Platform: Other
> Reporter: Peter Romianowski
> Assigned To: Velocity-Dev List
> Attachments: arithmetic.patch, arithmetic.patch, number-patch2.patch
>
>
> Hi,
> finally we got it together - the infamous "decimal number patch" evolved
> and here is the (hopefully) final patch to enable decimal numbers (and
> byte, short, long and BigInteger btw.) in velocity. This patch contains:
> - Decimal literals (by Will Glass-Husain)
> Now you can type things like #set ($foo = 3.14)
> - All arithmetic operations (+ - / *) now work with all Number-types
> available. Modulo (%) works with all except BigDecimal (there is no
> such method :)
> - All comparators (< > == != <= >=) work with all Number-types
> - A new type called TemplateNumber (o.a.v.util.TemplateNumber) is
> available which is treated as a Number in arithmetic operations and
> comparisons. (by Will Glass-Husain)
> I am not sure about this one though. But Will had good reasons to
> implement it - I think I just need some kind of "refreshing" on that
> ;)
> The patch is against the current head (Geir, you gave me a hard time
> during the last days, since you changed the Parser.jjt quite often, so
> that I had to incorporate the changes quite some times ;)
> Additionally some implementation details:
> -----------------------------------------
> All aritmetic operations and comparisons are delegated to a new class
> (o.a.v.runtime.parser.MathUtils). All operations are done using
> primitives (as far as possible) and NOT BigInteger / BigDecimal like the
> first proposal did. I added overflow checking all along the way (where
> possible). In addition to that I removed the "paradigm of the smallest
> type" where add (new Integer(1), new Integer(2)) would result in a
> Byte(3). Now types are preserved as far as possible (overflow, mixing of
> types). You find a lot of documentation about that in the javadoc
> (MathUtils.java). Finally, overall, there should be no performance drawback.
> There are also some new testcases and existing ones are updated (mostly
> template based like math.vm).
> So we (I hope Will doesn't mind me talking in his name) think this patch
> will increase the usability of velocity a lot and hope that the others
> like it too.
> Open for discussion...
> Regards
> Peter
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org