public class MathTool
extends java.lang.Object
Tool for performing math in Velocity.
Some things should be noted here:
Example toolbox.xml config (if you want to use this with VelocityView): <tool> <key>math</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.MathTool</class> </tool>
| Constructor and Description |
|---|
MathTool() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Number |
abs(java.lang.Object num) |
java.lang.Number |
add(java.lang.Object num1,
java.lang.Object num2) |
java.lang.Integer |
ceil(java.lang.Object num) |
java.lang.Number |
div(java.lang.Object num1,
java.lang.Object num2) |
java.lang.Integer |
floor(java.lang.Object num) |
java.lang.Number |
getAverage(java.util.Collection collection)
Get the average of the values
|
java.lang.Number |
getAverage(java.util.Collection collection,
java.lang.String field)
Get the average of the values from a list
|
java.lang.Number |
getAverage(double[] values)
Get the average of the values in an array of double values
|
java.lang.Number |
getAverage(long[] values)
Get the average of the values in an array of long values
|
java.lang.Number |
getAverage(java.lang.Object[] array)
Get the average of the values
|
java.lang.Number |
getAverage(java.lang.Object[] array,
java.lang.String field)
Get the sum of the values from a list
|
java.lang.Double |
getRandom() |
java.lang.Number |
getTotal(java.util.Collection collection)
Get the sum of the values
|
java.lang.Number |
getTotal(java.util.Collection collection,
java.lang.String field)
Get the sum of the values from a list
|
java.lang.Number |
getTotal(double[] values)
Get the sum of the values
|
java.lang.Number |
getTotal(long[] values)
Get the sum of the values
|
java.lang.Number |
getTotal(java.lang.Object[] array)
Get the sum of the values
|
java.lang.Number |
getTotal(java.lang.Object[] array,
java.lang.String field)
Get the sum of the values from a list
|
java.lang.Integer |
idiv(java.lang.Object num1,
java.lang.Object num2)
Does integer division on the int values of the specified numbers.
|
protected java.lang.Number |
matchType(java.lang.Number in,
double out) |
protected java.lang.Number |
matchType(java.lang.Number in1,
java.lang.Number in2,
double out)
Takes the original argument(s) and returns the resulting value as
an instance of the best matching type (Integer, Long, or Double).
|
java.lang.Number |
max(java.lang.Object num1,
java.lang.Object num2) |
java.lang.Number |
min(java.lang.Object num1,
java.lang.Object num2) |
java.lang.Integer |
mod(java.lang.Object num1,
java.lang.Object num2)
Does integer modulus on the int values of the specified numbers.
|
java.lang.Number |
mul(java.lang.Object num1,
java.lang.Object num2) |
protected java.lang.Number |
parseNumber(java.lang.String value)
Converts an object into a
Number (if it can)
This is used as the base for all numeric parsing methods. |
java.lang.Number |
pow(java.lang.Object num1,
java.lang.Object num2) |
java.lang.Number |
random(java.lang.Object num1,
java.lang.Object num2)
This returns a random
Number within the
specified range. |
java.lang.Integer |
round(java.lang.Object num)
Rounds a number to the nearest whole Integer
|
java.lang.Double |
roundTo(java.lang.Object decimals,
java.lang.Object num)
Rounds a number to the specified number of decimal places.
|
java.lang.Number |
sub(java.lang.Object num1,
java.lang.Object num2) |
java.lang.Double |
toDouble(java.lang.Object num)
Converts an object with a numeric value into a Double
Valid formats are
Number or a String
representation of a number |
java.lang.Integer |
toInteger(java.lang.Object num)
Converts an object with a numeric value into an Integer
Valid formats are
Number or a String
representation of a number |
java.lang.Number |
toNumber(java.lang.Object num)
Converts an object with a numeric value into a Number
Valid formats are
Number or a String
representation of a number. |
public java.lang.Number add(java.lang.Object num1,
java.lang.Object num2)
num1 - the first numbernum2 - the second numbernull if they're invalidtoNumber(java.lang.Object)public java.lang.Number sub(java.lang.Object num1,
java.lang.Object num2)
num1 - the first numbernum2 - the second numbernull if they're invalidtoNumber(java.lang.Object)public java.lang.Number mul(java.lang.Object num1,
java.lang.Object num2)
num1 - the first numbernum2 - the second numbernull if they're invalidtoNumber(java.lang.Object)public java.lang.Number div(java.lang.Object num1,
java.lang.Object num2)
num1 - the first numbernum2 - the second numbernull if they're invalidtoNumber(java.lang.Object)public java.lang.Number pow(java.lang.Object num1,
java.lang.Object num2)
num1 - the first numbernum2 - the second numbernull if they're invalidtoNumber(java.lang.Object)public java.lang.Integer idiv(java.lang.Object num1,
java.lang.Object num2)
So, $math.idiv('5.1',3) will return '1', and $math.idiv(6,'3.9') will return '2'.
num1 - the first numbernum2 - the second numbertoInteger(java.lang.Object)public java.lang.Integer mod(java.lang.Object num1,
java.lang.Object num2)
So, $math.mod('5.1',3) will return '2', and $math.mod(6,'3.9') will return '0'.
num1 - the first numbernum2 - the second numbertoInteger(java.lang.Object)public java.lang.Number max(java.lang.Object num1,
java.lang.Object num2)
num1 - the first numbernum2 - the second numbernull if they're invalidtoNumber(java.lang.Object)public java.lang.Number min(java.lang.Object num1,
java.lang.Object num2)
num1 - the first numbernum2 - the second numbernull if they're invalidtoNumber(java.lang.Object)public java.lang.Number abs(java.lang.Object num)
num - the numbernull if it's invalidtoDouble(java.lang.Object)public java.lang.Integer ceil(java.lang.Object num)
num - the numberpublic java.lang.Integer floor(java.lang.Object num)
num - the numberpublic java.lang.Integer round(java.lang.Object num)
num - the number to roundnull if it's invalidMath.rint(double)public java.lang.Double roundTo(java.lang.Object decimals,
java.lang.Object num)
round(java.lang.Object), as that will return
an Integer rather than a Double.decimals - the number of decimal placesnum - the number to roundnull if it's invalidtoNumber(java.lang.Object)public java.lang.Double getRandom()
Double greater
than or equal to 0.0 and less than 1.0Math.random()public java.lang.Number random(java.lang.Object num1,
java.lang.Object num2)
Number within the
specified range. The returned value will be
greater than or equal to the first number
and less than the second number. If both arguments
are whole numbers then the returned number will
also be, otherwise a Double will
be returned.num1 - the first numbernum2 - the second numberNumber greater than
or equal to the first number and less than
the secondMath.random()public java.lang.Integer toInteger(java.lang.Object num)
Number or a String
representation of a numbernum - the number to be convertedInteger representation of the number
or null if it's invalidpublic java.lang.Double toDouble(java.lang.Object num)
Number or a String
representation of a numbernum - the number to be convertedDouble representation of the number
or null if it's invalidpublic java.lang.Number toNumber(java.lang.Object num)
Number or a String
representation of a number. Note that this does not
handle localized number formats. Use the NumberTool
to handle such conversions.num - the number to be convertedNumber representation of the number
or null if it's invalidprotected java.lang.Number matchType(java.lang.Number in,
double out)
matchType(Number,Number,double)protected java.lang.Number matchType(java.lang.Number in1,
java.lang.Number in2,
double out)
protected java.lang.Number parseNumber(java.lang.String value)
throws java.lang.NumberFormatException
Number (if it can)
This is used as the base for all numeric parsing methods. So,
sub-classes can override to allow for customized number parsing.
(e.g. for i18n, fractions, compound numbers, bigger numbers, etc.)value - the string to be parsedNumberjava.lang.NumberFormatExceptionpublic java.lang.Number getTotal(java.util.Collection collection,
java.lang.String field)
collection - A collection containing Java beansfield - A Java Bean field for the objects in collection that
will return a number.public java.lang.Number getAverage(java.util.Collection collection,
java.lang.String field)
collection - A collection containing Java beansfield - A Java Bean field for the objects in collection that
will return a number.public java.lang.Number getTotal(java.lang.Object[] array,
java.lang.String field)
array - An array containing Java beansfield - A Java Bean field for the objects in array that
will return a number.public java.lang.Number getAverage(java.lang.Object[] array,
java.lang.String field)
array - A collection containing Java beansfield - A Java Bean field for the objects in array that
will return a number.public java.lang.Number getTotal(java.util.Collection collection)
collection - A collection containing numeric valuespublic java.lang.Number getAverage(java.util.Collection collection)
collection - A collection containing number valuespublic java.lang.Number getTotal(java.lang.Object[] array)
array - An array containing number valuespublic java.lang.Number getAverage(java.lang.Object[] array)
array - An array containing number valuespublic java.lang.Number getTotal(double[] values)
values - The list of double values to add up.public java.lang.Number getAverage(double[] values)
values - The list of double valuespublic java.lang.Number getTotal(long[] values)
values - The list of long values to add up.public java.lang.Number getAverage(long[] values)
values - The list of long valuesCopyright (c) 2003-2007 Apache Software Foundation