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 Value
evaluate(Context c)
Evaluate in a general contextjava.lang.String
evaluateAsString(Context context)
Evaluate in a context where a string is wantedjava.lang.String
formatNumber(double n, java.lang.String format, java.text.DecimalFormatSymbols dfs)
Here is the method that does the work.int
getDataType()
Determine the data type of the exprEssionint
getDependencies()
Determine the dependenciesjava.lang.String
getName()
Get the name of the function.Expression
reduce(int dep, Context c)
Reduce the dependenciesExpression
simplify()
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: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
public Expression simplify() throws XPathException
Simplify and validate- Overrides:
simplify
in 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:
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
public Value evaluate(Context c) throws XPathException
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
public java.lang.String formatNumber(double n, java.lang.String format, java.text.DecimalFormatSymbols dfs) throws XPathException
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
public Expression reduce(int dep, Context c) throws XPathException
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
-
-