public class FormatNumber extends SystemFunction implements Callable, StatefulSystemFunction
| Modifier and Type | Class and Description |
|---|---|
static class |
FormatNumber.SubPicture
Inner class to represent one sub-picture (the negative or positive subpicture)
|
| 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
|
static java.util.function.Function<java.lang.Double,java.lang.String> |
getFormatter(java.lang.String picture)
Get a function to format a double as a string using a supplied picture
|
protected DecimalSymbols |
getNamedDecimalFormat(DecimalFormatManager dfm,
java.lang.String lexicalName)
Get a decimal format, given its lexical QName
|
protected static FormatNumber.SubPicture |
makeSubPicture(int[] details,
DecimalSymbols dfs) |
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, getUniStringArg, hashCode, importAttributes, isSequenceVariadic, isTrustedResultType, makeCall, makeFunction, makeFunctionCall, makeOptimizedFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, supplyTypeInformation, toShortString, toString, typeCheckCalleratomize, deepEquals, effectiveBooleanValue, getAnnotations, getUnicodeStringValue, isArray, isMap, makeNewContext, simplify, typeCheckclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetLength, getStringValue, head, isStreamed, itemAt, iterate, reduce, subsequenceasIterable, concatenate, containsNode, materializemakeRepeatablepublic Expression fixArguments(Expression... arguments) throws XPathException
fixArguments in class SystemFunctionarguments - the supplied arguments to the function callXPathException - if an error is detectedprotected static FormatNumber.SubPicture makeSubPicture(int[] details, DecimalSymbols dfs) throws XPathException
XPathExceptionpublic 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 Callablecontext - 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 StatefulSystemFunctionpublic static java.util.function.Function<java.lang.Double,java.lang.String> getFormatter(java.lang.String picture)
throws XPathException
picture - the supplied pictureXPathException - if the picture is invalidCopyright (c) 2004-2022 Saxonica Limited. All rights reserved.