com.icl.saxon.expr
Class FragmentValue

java.lang.Object
  extended bycom.icl.saxon.expr.Expression
      extended bycom.icl.saxon.expr.Value
          extended bycom.icl.saxon.expr.NodeSetValue
              extended bycom.icl.saxon.expr.SingletonNodeSet
                  extended bycom.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
FragmentValue(Controller c)
           
 
Method Summary
 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 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:
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

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
Throws:
XPathException

notEquals

public boolean notEquals(Value other)
                  throws XPathException
Test whether a nodeset "not-equals" another Value

Overrides:
notEquals in class SingletonNodeSet
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 TransformerException
Copy the result tree fragment value to a given Outputter

Throws:
TransformerException

replay

public void replay(Emitter emitter)
            throws TransformerException
Replay the saved emitter events to a new emitter

Throws:
TransformerException

display

public void display(int level)
Diagnostic print of expression structure

Overrides:
display in class NodeSetValue