Package com.icl.saxon.functions
Class FormatNumber
java.lang.Object
com.icl.saxon.expr.Expression
com.icl.saxon.expr.Function
com.icl.saxon.functions.FormatNumber
-
Field Summary
Fields inherited from class com.icl.saxon.expr.Expression
staticContext
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionEvaluate in a general contextevaluateAsString
(Context context) Evaluate in a context where a string is wantedformatNumber
(double n, String format, DecimalFormatSymbols dfs) Here is the method that does the work.int
Determine the data type of the exprEssionint
Determine the dependenciesgetName()
Get the name of the function.Reduce the dependenciessimplify()
Simplify and validateMethods inherited from class com.icl.saxon.expr.Function
addArgument, checkArgumentCount, display, getNumberOfArguments
Methods inherited from class com.icl.saxon.expr.Expression
containsReferences, enumerate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, setStaticContext, usesCurrent
-
Constructor Details
-
FormatNumber
public FormatNumber()
-
-
Method Details
-
getName
Description copied from class:Function
Get the name of the function. This method must be implemented in all subclasses. -
getDataType
public int getDataType()Determine the data type of the exprEssion- Specified by:
getDataType
in classExpression
- Returns:
- Value.STRING
-
simplify
Simplify and validate- Overrides:
simplify
in classExpression
- Returns:
- the simplified expression
- Throws:
XPathException
-
evaluateAsString
Evaluate in a context where a string is wanted- Overrides:
evaluateAsString
in classExpression
- Parameters:
context
- The context in which the expression is to be evaluated- Returns:
- the value of the expression, evaluated in the current context
- Throws:
XPathException
-
evaluate
Evaluate in a general context- Specified by:
evaluate
in classExpression
- Parameters:
c
- The context in which the expression is to be evaluated- Returns:
- the value of the expression, evaluated in the current context
- Throws:
XPathException
-
formatNumber
Here is the method that does the work. It needs to be synchronized because it remembers information from one invocation to the next; it doesn't matter if these are in different threads but it can't be interrupted. The reason for remembering information is that getting a new DecimalFormatSymbols each time is incredibly expensive, especially with the Microsoft Java VM. Actually the synchronization is unnecessary if there is a bound Controller.- Throws:
XPathException
-
getDependencies
public int getDependencies()Determine the dependencies- Specified by:
getDependencies
in classExpression
-
reduce
Reduce the dependencies- Specified by:
reduce
in classExpression
- Parameters:
dep
- The dependencies to be removed, e.g. Context.VARIABLESc
- The context to be used for the partial evaluation- Returns:
- a new expression (or Value) that does not have any of the specified dependencies
- Throws:
XPathException
-