Class StringLengthFunction

java.lang.Object
org.jaxen.function.StringLengthFunction
All Implemented Interfaces:
Function

public class StringLengthFunction extends Object implements Function

4.2 number string-length(string)

The string-length function returns the number of Unicode characters in its argument. This is not necessarily the same as the number Java chars in the corresponding Java string. In particular, if the Java String contains surrogate pairs each such pair will be counted as only one character by this function. If the argument is omitted, it returns the length of the string-value of the context node.

Author:
bob mcwhirter (bob @ werken.com)
See Also:
  • Constructor Details

    • StringLengthFunction

      public StringLengthFunction()
      Create a new StringLengthFunction object.
  • Method Details

    • call

      public Object call(Context context, List args) throws FunctionCallException

      Returns the number of Unicode characters in the string-value of the argument.

      Specified by:
      call in interface Function
      Parameters:
      context - the context at the point in the expression when the function is called
      args - a list containing the item whose string-value is to be counted. If empty, the length of the context node's string-value is returned.
      Returns:
      a Double giving the number of Unicode characters
      Throws:
      FunctionCallException - if args has more than one item
    • evaluate

      public static Double evaluate(Object obj, Navigator nav) throws FunctionCallException

      Returns the number of Unicode characters in the string-value of an object.

      Parameters:
      obj - the object whose string-value is counted
      nav - used to calculate the string-values of the first two arguments
      Returns:
      a Double giving the number of Unicode characters
      Throws:
      FunctionCallException - if the string contains mismatched surrogates