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
-
public class FormatNumber extends Function
-
-
Field Summary
-
Fields inherited from class com.icl.saxon.expr.Expression
staticContext
-
-
Constructor Summary
Constructors Constructor Description FormatNumber()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Valueevaluate(Context c)Evaluate in a general contextjava.lang.StringevaluateAsString(Context context)Evaluate in a context where a string is wantedjava.lang.StringformatNumber(double n, java.lang.String format, java.text.DecimalFormatSymbols dfs)Here is the method that does the work.intgetDataType()Determine the data type of the exprEssionintgetDependencies()Determine the dependenciesjava.lang.StringgetName()Get the name of the function.Expressionreduce(int dep, Context c)Reduce the dependenciesExpressionsimplify()Simplify and validate-
Methods 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
-
-
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from class:FunctionGet 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:
getDataTypein classExpression- Returns:
- Value.STRING
-
simplify
public Expression simplify() throws XPathException
Simplify and validate- Overrides:
simplifyin classExpression- Returns:
- the simplified expression
- Throws:
XPathException
-
evaluateAsString
public java.lang.String evaluateAsString(Context context) throws XPathException
Evaluate in a context where a string is wanted- Overrides:
evaluateAsStringin 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
public Value evaluate(Context c) throws XPathException
Evaluate in a general context- Specified by:
evaluatein 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
public java.lang.String formatNumber(double n, java.lang.String format, java.text.DecimalFormatSymbols dfs) throws XPathExceptionHere 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:
getDependenciesin classExpression
-
reduce
public Expression reduce(int dep, Context c) throws XPathException
Reduce the dependencies- Specified by:
reducein 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
-
-