public class FormatNumber extends SystemFunction implements Callable, StatefulSystemFunction
Constructor and Description |
---|
FormatNumber() |
Modifier and Type | Method and Description |
---|---|
static java.math.BigDecimal |
adjustToDecimal(double value,
int precision)
Convert a double to a BigDecimal.
|
StringValue |
call(XPathContext context,
Sequence[] arguments)
Call the format-number function, supplying two or three arguments
|
FormatNumber |
copy()
Make a copy of this SystemFunction.
|
Expression |
fixArguments(Expression... arguments)
Allow the function to create an optimized call based on the values of the actual arguments.
|
static java.lang.String |
formatExponential(DoubleValue value)
Format a double as required by the adaptive serialization method
|
protected DecimalSymbols |
getNamedDecimalFormat(DecimalFormatManager dfm,
java.lang.String lexicalName)
Get a decimal format, given its lexical QName
|
dependsOnContextItem, dynamicCall, equals, export, exportAdditionalArguments, exportAttributes, getArity, getCardinality, getCompilerName, getContextNode, getDescription, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getSpecialProperties, getStaticBaseUriString, getStreamerName, importAttributes, isTrustedResultType, makeCall, makeFunction, makeFunctionCall, makeOptimizedFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, supplyTypeInformation, toShortString, toString, typeCheckCaller
atomize, deepEquals, effectiveBooleanValue, getAnnotations, getStringValue, getStringValueCS, isArray, isMap, makeNewContext, simplify, typeCheck
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
argumentArray, getGenre
getLength, head, isStreamed, itemAt, iterate, iterator, reduce, subsequence, toGroundedValue
asIterable, materialize
makeRepeatable
public Expression fixArguments(Expression... arguments) throws XPathException
fixArguments
in class SystemFunction
arguments
- the supplied arguments to the function callXPathException
- if an error is detectedpublic static java.math.BigDecimal adjustToDecimal(double value, int precision)
value
- the double to be convertedprecision
- 2 for a double, 1 for a floatpublic StringValue call(XPathContext context, Sequence[] arguments) throws XPathException
call
in interface Callable
call
in interface Function
context
- the dynamic evaluation contextarguments
- the values of the arguments, supplied as Sequences.
Generally it is advisable, if calling iterate() to process a supplied sequence, to
call it only once; if the value is required more than once, it should first be converted
to a GroundedValue
by calling the utility methd
SequenceTool.toGroundedValue().
If the expected value is a single item, the item should be obtained by calling
Sequence.head(): it cannot be assumed that the item will be passed as an instance of
Item
or AtomicValue
.
It is the caller's responsibility to perform any type conversions required to convert arguments to the type expected by the callee. An exception is where this Callable is explicitly an argument-converting wrapper around the original Callable.
XPathException
- if any dynamic error occursprotected DecimalSymbols getNamedDecimalFormat(DecimalFormatManager dfm, java.lang.String lexicalName) throws XPathException
dfm
- the decimal format managerlexicalName
- the lexical QName (or EQName) of the decimal formatXPathException
- if the lexical QName is invalid or if no decimal format is found.public static java.lang.String formatExponential(DoubleValue value)
value
- the value to be formattedpublic FormatNumber copy()
copy
in interface StatefulSystemFunction
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.