com.icl.saxon.expr

## Class FragmentValue

- java.lang.Object
- - com.icl.saxon.expr.Expression
  - - com.icl.saxon.expr.Value
    - - com.icl.saxon.expr.NodeSetValue
      - - com.icl.saxon.expr.SingletonNodeSet
        - - com.icl.saxon.expr.FragmentValue

- All Implemented Interfaces:
    org.w3c.dom.NodeList

      public final class FragmentValue
      extends SingletonNodeSet

  This class represents a Value of type result tree fragment.
  A Result Tree Fragment can be created by defining a variable in XSL whose value is defined by the contents of the xsl:variable element, possibly including start and end element tags.

- - ### Field Summary

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

      `generalUseAllowed, node`

    - ### 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
    `FragmentValue(Controller c)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `asBoolean()` Convert the result tree fragment to a boolean
    `double` | `asNumber()` Convert the result tree fragment to a number
    `java.lang.String` | `asString()` Convert the result tree fragment to a string.
    `boolean` | `compare(int operator, Value other)` Test how a FragmentValue compares to another Value under a relational comparison.
    `void` | `copy(Outputter out)` Copy the result tree fragment value to a given Outputter
    `void` | `display(int level)` Diagnostic print of expression structure
    `NodeEnumeration` | `enumerate()` Return an enumeration of this nodeset value.
    `boolean` | `equals(Value other)` Test whether a nodeset "equals" another Value
    `int` | `getCount()` Count the nodes in the node-set.
    `int` | `getDataType()` Determine the data type of the expression, if possible
    `Emitter` | `getEmitter()` Get an Emitter that can be used to feed data to this result tree fragment
    `NodeInfo` | `getFirst()` Get the first node in the nodeset (in document order)
    `DocumentInfo` | `getRootNode()` Get the root (document) node
    `int` | `getType()` Return the type of the value
    `boolean` | `notEquals(Value other)` Test whether a nodeset "not-equals" another Value
    `void` | `outputStringValue(Outputter out, Context context)` Evaluate an expression as a String and write the result to the specified outputter.
    `void` | `replay(Emitter emitter)` Replay the saved emitter events to a new emitter
    `void` | `setBaseURI(java.lang.String uri)` Set the Base URI for the nodes in the result tree fragment.
    `Expression` | `simplify()` Simplify the expression

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

      `allowGeneralUse, evaluate, evaluateAsNodeSet, getLength, isGeneralUseAllowed, isSorted, item, setSorted, sort`

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

      `conversionPreference, convertToJava, enumerate`

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

      `getDependencies, inverse, numericCompare, reduce, stringToNumber`

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

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

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

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

- - ### Constructor Detail

    - #### FragmentValue

          public FragmentValue(Controller c)

  - ### Method Detail

    - #### setBaseURI

          public void setBaseURI(java.lang.String uri)

      Set the Base URI for the nodes in the result tree fragment. This is defined to be the Base URI of the relevant xsl:variable element in the stylesheet.

    - #### getEmitter

          public Emitter getEmitter()

      Get an Emitter that can be used to feed data to this result tree fragment

    - #### asString

          public java.lang.String asString()

      Convert the result tree fragment to a string.
      Overrides:
        `asString` in class `SingletonNodeSet`
      Returns:
        the value of the first node in the node-set if there is one, otherwise an empty string

    - #### outputStringValue

          public void outputStringValue(Outputter out,
                               Context context)
                                 throws javax.xml.transform.TransformerException

      Evaluate an expression as a String and write the result to the specified outputter.
      Overrides:
        `outputStringValue` in class `Expression`
      Parameters:
        `out` - The required outputter
        `context` - The context in which the expression is to be evaluated
      Throws:
        `javax.xml.transform.TransformerException`

    - #### asNumber

          public double asNumber()

      Convert the result tree fragment to a number
      Overrides:
        `asNumber` in class `NodeSetValue`
      Returns:
        the number obtained by evaluating as a String and converting the string to a number

    - #### asBoolean

          public boolean asBoolean()

      Convert the result tree fragment to a boolean
      Overrides:
        `asBoolean` in class `SingletonNodeSet`
      Returns:
        true if the node set is not empty

    - #### getCount

          public int getCount()

      Count the nodes in the node-set.
      Overrides:
        `getCount` in class `SingletonNodeSet`

    - #### simplify

          public Expression simplify()

      Simplify the expression
      Overrides:
        `simplify` in class `SingletonNodeSet`
      Returns:
        the simplified expression

    - #### getFirst

          public NodeInfo getFirst()

      Get the first node in the nodeset (in document order)
      Overrides:
        `getFirst` in class `SingletonNodeSet`
      Returns:
        the first node

    - #### enumerate

          public NodeEnumeration enumerate()
                                    throws XPathException

      Return an enumeration of this nodeset value.
      Overrides:
        `enumerate` in class `SingletonNodeSet`
      Throws:
        `XPathException`

    - #### equals

          public boolean equals(Value other)
                         throws XPathException

      Test whether a nodeset "equals" another Value
      Overrides:
        `equals` in class `SingletonNodeSet`
      Returns:
        a boolean giving the value of the expression, evaluated in the current context
      Throws:
        `XPathException`

    - #### notEquals

          public boolean notEquals(Value other)
                            throws XPathException

      Test whether a nodeset "not-equals" another Value
      Overrides:
        `notEquals` in class `SingletonNodeSet`
      Returns:
        a boolean giving the value of the expression, evaluated in the current context
      Throws:
        `XPathException`

    - #### compare

          public boolean compare(int operator,
                        Value other)
                          throws XPathException

      Test how a FragmentValue compares to another Value under a relational comparison.
      Overrides:
        `compare` in class `NodeSetValue`
      Parameters:
        `operator` - The comparison operator, one of Tokenizer.LE, Tokenizer.LT, Tokenizer.GE, Tokenizer.GT,
      Throws:
        `XPathException`

    - #### getType

          public int getType()

      Return the type of the value
      Returns:
        Value.NODESET (always)

    - #### getDataType

          public int getDataType()

      Determine the data type of the expression, if possible
      Overrides:
        `getDataType` in class `NodeSetValue`
      Returns:
        Value.NODESET

    - #### getRootNode

          public DocumentInfo getRootNode()

      Get the root (document) node

    - #### copy

          public void copy(Outputter out)
                    throws javax.xml.transform.TransformerException

      Copy the result tree fragment value to a given Outputter
      Throws:
        `javax.xml.transform.TransformerException`

    - #### replay

          public void replay(Emitter emitter)
                      throws javax.xml.transform.TransformerException

      Replay the saved emitter events to a new emitter
      Throws:
        `javax.xml.transform.TransformerException`

    - #### display

          public void display(int level)

      Diagnostic print of expression structure
      Overrides:
        `display` in class `NodeSetValue`