com.icl.saxon.expr

## Class StringValue

- java.lang.Object
- - com.icl.saxon.expr.Expression
  - - com.icl.saxon.expr.Value
    - - com.icl.saxon.expr.StringValue

-     public final class StringValue
      extends Value

  A string value

- - ### Field Summary

    - ### Fields inherited from class com.icl.saxon.expr.Value

      `ANY, BOOLEAN, NODESET, NUMBER, OBJECT, STRING`

    - ### Fields inherited from class com.icl.saxon.expr.Expression

      `staticContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StringValue(java.lang.String value)` Constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `asBoolean()` Convert the string value to a boolean
    `double` | `asNumber()` Convert the string value to a number
    `java.lang.String` | `asString()` Get the string value as a String
    `int` | `conversionPreference(java.lang.Class required)` Get conversion preference for this value to a Java class.
    `java.lang.Object` | `convertToJava(java.lang.Class target)` Convert to Java object (for passing to external functions)
    `void` | `display(int level)` Diagnostic print of expression structure
    `boolean` | `equals(StringValue other)` Determine if two StringValues are equal
    `static int[]` | `expand(java.lang.String s)` Expand a string containing surrogate pairs into an array of 32-bit characters
    `int` | `getDataType()` Return the type of the expression (if known)
    `int` | `getLength()` Get the length of this string, as defined in XPath.
    `static int` | `getLength(java.lang.String s)` Get the length of a string, as defined in XPath.

    - ### Methods inherited from class com.icl.saxon.expr.Value

      `compare, equals, evaluate, getDependencies, inverse, notEquals, numericCompare, reduce, simplify, stringToNumber`

    - ### Methods inherited from class com.icl.saxon.expr.Expression

      `containsReferences, enumerate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, evaluateAsString, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, setStaticContext, usesCurrent`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StringValue

          public StringValue(java.lang.String value)

      Constructor
      Parameters:
        `value` - the String value. Null is taken as equivalent to "".

  - ### Method Detail

    - #### asString

          public java.lang.String asString()

      Get the string value as a String
      Specified by:
        `asString` in class `Value`
      Returns:
        the value converted to a String

    - #### asNumber

          public double asNumber()

      Convert the string value to a number
      Specified by:
        `asNumber` in class `Value`
      Returns:
        the value converted to a String

    - #### asBoolean

          public boolean asBoolean()

      Convert the string value to a boolean
      Specified by:
        `asBoolean` in class `Value`
      Returns:
        false if the string value is zero-length, true otherwise

    - #### getDataType

          public int getDataType()

      Return the type of the expression (if known)
      Specified by:
        `getDataType` in class `Expression`
      Returns:
        Value.STRING (always)

    - #### getLength

          public int getLength()

      Get the length of this string, as defined in XPath. This is not the same as the Java length, as a Unicode surrogate pair counts as a single character

    - #### getLength

          public static int getLength(java.lang.String s)

      Get the length of a string, as defined in XPath. This is not the same as the Java length, as a Unicode surrogate pair counts as a single character.
      Parameters:
        `s` - The string whose length is required

    - #### expand

          public static int[] expand(java.lang.String s)

      Expand a string containing surrogate pairs into an array of 32-bit characters

    - #### equals

          public boolean equals(StringValue other)

      Determine if two StringValues are equal

    - #### conversionPreference

          public int conversionPreference(java.lang.Class required)

      Get conversion preference for this value to a Java class. A low result indicates higher preference.
      Specified by:
        `conversionPreference` in class `Value`

    - #### convertToJava

          public java.lang.Object convertToJava(java.lang.Class target)
                                         throws XPathException

      Convert to Java object (for passing to external functions)
      Specified by:
        `convertToJava` in class `Value`
      Parameters:
        `target` - The class required by the external function
      Returns:
        an object of the target class
      Throws:
        `XPathException`

    - #### display

          public void display(int level)

      Diagnostic print of expression structure
      Specified by:
        `display` in class `Expression`